tangled
alpha
login
or
join now
kacaii.dev
/
sigo
0
fork
atom
๐ฉโ๐ Firefighters API written in Gleam!
lustre
gleam
0
fork
atom
overview
issues
pulls
pipelines
:lipstick: add nerd icons <3
kacaii.dev
3 weeks ago
ab4de27c
c521fad9
verified
This commit was signed with the committer's
known signature
.
kacaii.dev
SSH Key Fingerprint:
SHA256:n9v7QGNWHCUv1x/483hCtPUvTsVabU5PzC5CSJMUNtI=
+29
-9
5 changed files
expand all
collapse all
unified
split
client
assets
style.css
src
client
page
element
header.gleam
nerd_font.gleam
login.gleam
server
priv
static
style.css
+2
-1
client/assets/style.css
···
1
1
-
@import "output.css"
1
1
+
@import "output.css";
2
2
+
@import "https://www.nerdfonts.com/assets/css/webfont.css";
+7
-2
client/src/client/page/element/header.gleam
···
1
1
+
import client/page/element/nerd_font
1
2
import lustre/attribute.{class} as attr
2
3
import lustre/element
3
4
import lustre/element/html
···
20
21
}
21
22
22
23
fn logo() -> element.Element(_) {
23
23
-
let style = class("font-black text-accent")
24
24
-
html.h3([style], [html.text("SIGO")])
24
24
+
let attributes = [
25
25
+
class("px-2 font-black text-accent"),
26
26
+
class("flex gap-2 justify-center items-center"),
27
27
+
]
28
28
+
29
29
+
html.h3(attributes, [nerd_font.icon("md-fire_truck"), html.text("SIGO")])
25
30
}
26
31
27
32
fn anchor(session: session.Session) -> element.Element(_) {
+8
client/src/client/page/element/nerd_font.gleam
···
1
1
+
import lustre/attribute.{class}
2
2
+
import lustre/element
3
3
+
import lustre/element/html
4
4
+
5
5
+
pub fn icon(icon: String) -> element.Element(_) {
6
6
+
let glyph = "nf nf-" <> icon
7
7
+
html.i([class(glyph)], [])
8
8
+
}
+10
-5
client/src/client/page/login.gleam
···
1
1
+
import client/page/element/nerd_font
1
2
import gleam/string
2
3
import lustre/attribute.{class} as attr
3
4
import lustre/effect
···
76
77
class("flex justify-center items-center mx-auto max-w-2xl h-full")
77
78
78
79
let container_attr = [
79
79
-
class("grid grid-cols-1 gap-4 items-center"),
80
80
+
class("grid grid-cols-1 gap-2 items-center"),
80
81
class("p-4 m-auto w-full max-w-md"),
81
82
class("rounded-md border border-surface"),
82
83
]
···
96
97
97
98
fn button(model: Model) -> element.Element(Msg) {
98
99
let attributes = [
100
100
+
class("flex gap-2 justify-center items-center"),
99
101
class("p-2 text-white rounded-md bg-secondary"),
100
102
class("hover:cursor-pointer hover:bg-accent hover:text-primary"),
101
103
···
107
109
event.on_click(UserSentRequest),
108
110
]
109
111
110
110
-
html.button(attributes, [html.text("Login")])
112
112
+
html.button(attributes, [
113
113
+
nerd_font.icon("md-database_search"),
114
114
+
html.text("Login"),
115
115
+
])
111
116
}
112
117
113
118
fn message_text(model: Model) -> element.Element(Msg) {
···
124
129
value: model.email,
125
130
disabled: False,
126
131
on_input: UserUpdatedLoginField,
127
127
-
input_type: "text",
132
132
+
input_type: "email",
128
133
),
129
134
130
135
input(
···
148
153
class("px-2 w-full text-white bg-primary"),
149
154
class("rounded-md border border-surface"),
150
155
class("placeholder:text-surface"),
151
151
-
class("focus:outline-0 focus:border-sky-500"),
156
156
+
class("focus:outline-0 focus:border-accent"),
152
157
class("disabled:bg-surface disabled:placeholder:text-primary"),
153
153
-
attr.disabled(disabled),
154
158
159
159
+
attr.disabled(disabled),
155
160
attr.placeholder(text),
156
161
attr.value(value),
157
162
event.on_input(on_input),
+2
-1
server/priv/static/style.css
···
1
1
-
@import "output.css"
1
1
+
@import "output.css";
2
2
+
@import "https://www.nerdfonts.com/assets/css/webfont.css";