Implement initial version of start page.
This commit is contained in:
parent
5b0e9df4f9
commit
73ba3ad627
4
elm.json
4
elm.json
|
@ -8,10 +8,12 @@
|
||||||
"direct": {
|
"direct": {
|
||||||
"elm/browser": "1.0.1",
|
"elm/browser": "1.0.1",
|
||||||
"elm/core": "1.0.2",
|
"elm/core": "1.0.2",
|
||||||
"elm/html": "1.0.0"
|
"elm/html": "1.0.0",
|
||||||
|
"feathericons/elm-feather": "1.3.0"
|
||||||
},
|
},
|
||||||
"indirect": {
|
"indirect": {
|
||||||
"elm/json": "1.1.3",
|
"elm/json": "1.1.3",
|
||||||
|
"elm/svg": "1.0.1",
|
||||||
"elm/time": "1.0.0",
|
"elm/time": "1.0.0",
|
||||||
"elm/url": "1.0.0",
|
"elm/url": "1.0.0",
|
||||||
"elm/virtual-dom": "1.0.2"
|
"elm/virtual-dom": "1.0.2"
|
||||||
|
|
14
index.html
Normal file
14
index.html
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" href="style.css">
|
||||||
|
<script src="elm.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="elm">
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
var elmDiv = document.getElementById("elm");
|
||||||
|
var app = Elm.Main.init(elmDiv)
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
61
src/Start/Custom.elm
Normal file
61
src/Start/Custom.elm
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
module Start.Custom exposing (tabs)
|
||||||
|
import Start.Model exposing (Tab)
|
||||||
|
import FeatherIcons
|
||||||
|
|
||||||
|
tabs : List Tab
|
||||||
|
tabs =
|
||||||
|
[
|
||||||
|
{ name = "Gitea"
|
||||||
|
, color = "#66c485"
|
||||||
|
, icon = FeatherIcons.gitMerge
|
||||||
|
, link = "https://dev.danilafe.com"
|
||||||
|
}
|
||||||
|
,
|
||||||
|
{ name = "GitHub"
|
||||||
|
, color = "#b188c9"
|
||||||
|
, icon = FeatherIcons.github
|
||||||
|
, link = "https://github.com"
|
||||||
|
}
|
||||||
|
,
|
||||||
|
{ name = "Blog"
|
||||||
|
, color = "#7dbce0"
|
||||||
|
, icon = FeatherIcons.alignLeft
|
||||||
|
, link = "https://danilafe.com"
|
||||||
|
}
|
||||||
|
,
|
||||||
|
{ name = "Projects"
|
||||||
|
, color = "#e08fa1"
|
||||||
|
, icon = FeatherIcons.box
|
||||||
|
, link = "http://project.danilafe.com"
|
||||||
|
}
|
||||||
|
,
|
||||||
|
{ name = "Finance"
|
||||||
|
, color = "#d7e076"
|
||||||
|
, icon = FeatherIcons.dollarSign
|
||||||
|
, link = "http://finance.danilafe.com"
|
||||||
|
}
|
||||||
|
,
|
||||||
|
{ name = "Scylla"
|
||||||
|
, color = "#efb05d"
|
||||||
|
, icon = FeatherIcons.messageSquare
|
||||||
|
, link = "https://scylla.danilafe.com"
|
||||||
|
}
|
||||||
|
,
|
||||||
|
{ name = "Canvas"
|
||||||
|
, color = "#ce665c"
|
||||||
|
, icon = FeatherIcons.bookOpen
|
||||||
|
, link = "https://oregonstate.instructure.com"
|
||||||
|
}
|
||||||
|
,
|
||||||
|
{ name = "MyDegrees"
|
||||||
|
, color = "#db8cc3"
|
||||||
|
, icon = FeatherIcons.user
|
||||||
|
, link = "https://mydegrees.oregonstate.edu"
|
||||||
|
}
|
||||||
|
,
|
||||||
|
{ name = "Email"
|
||||||
|
, color = "#7b77d6"
|
||||||
|
, icon = FeatherIcons.mail
|
||||||
|
, link = "https://mail.google.com/mail/u/0"
|
||||||
|
}
|
||||||
|
]
|
|
@ -1,5 +1,13 @@
|
||||||
module Start.Model exposing (Flags, Model, Msg)
|
module Start.Model exposing (Flags, Model, Msg, Tab)
|
||||||
|
import FeatherIcons
|
||||||
|
|
||||||
type alias Flags = ()
|
type alias Flags = ()
|
||||||
type alias Model = ()
|
type alias Model = ()
|
||||||
type alias Msg = ()
|
type alias Msg = ()
|
||||||
|
|
||||||
|
type alias Tab =
|
||||||
|
{ name : String
|
||||||
|
, color : String
|
||||||
|
, icon : FeatherIcons.Icon
|
||||||
|
, link : String
|
||||||
|
}
|
||||||
|
|
|
@ -1,6 +1,20 @@
|
||||||
module Start.View exposing (view)
|
module Start.View exposing (view)
|
||||||
import Start.Model exposing (Model, Msg)
|
import Start.Model exposing (Model, Msg, Tab)
|
||||||
import Html exposing (Html, text)
|
import Start.Custom exposing (tabs)
|
||||||
|
import Html exposing (Html, text, div, span, h1, a)
|
||||||
|
import Html.Attributes exposing (class, style, href)
|
||||||
|
import Html.Events exposing (onClick)
|
||||||
|
import FeatherIcons
|
||||||
|
|
||||||
view : Model -> List (Html Msg)
|
view : Model -> List (Html Msg)
|
||||||
view () = [ text "Hello, world!" ]
|
view () =
|
||||||
|
[ div [ class "tab-container" ] <|
|
||||||
|
h1 [] [ text "Welcome." ] :: List.map viewTab tabs
|
||||||
|
]
|
||||||
|
|
||||||
|
viewTab : Tab -> Html Msg
|
||||||
|
viewTab t =
|
||||||
|
a [ class "tab", style "border-color" t.color, href t.link ]
|
||||||
|
[ FeatherIcons.toHtml [] t.icon
|
||||||
|
, span [ class "tab-title" ] [ text t.name ]
|
||||||
|
]
|
||||||
|
|
54
style.scss
Normal file
54
style.scss
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
body {
|
||||||
|
background-image: url("background.jpg");
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-container {
|
||||||
|
display: flex;
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
margin: auto;
|
||||||
|
max-width: 800px;
|
||||||
|
align-content: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
flex-grow: 1;
|
||||||
|
flex-basis: 100%;
|
||||||
|
color: white;
|
||||||
|
text-align: center;
|
||||||
|
text-shadow: 0px 0px 5px rgba(0, 0, 0, .45);
|
||||||
|
font-family: "Source Code Pro";
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: 2.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab {
|
||||||
|
font-family: "Source Code Pro";
|
||||||
|
padding: 10px;
|
||||||
|
display: flex;
|
||||||
|
flex-grow: 1;
|
||||||
|
flex-basis: 25%;
|
||||||
|
align-items: center;
|
||||||
|
background-color: white;
|
||||||
|
border-bottom: 4px solid;
|
||||||
|
margin: 10px;
|
||||||
|
box-shadow: 0px 0 5px rgba(0, 0, 0, .25);
|
||||||
|
transition: box-shadow .25s;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
box-shadow: 0px 0 15px rgba(0, 0, 0, .45);
|
||||||
|
}
|
||||||
|
|
||||||
|
.feather {
|
||||||
|
padding: 10px;
|
||||||
|
padding-left: 20px;
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user