From e8bfadc6b435175efed0f469794d56a656a3d64a Mon Sep 17 00:00:00 2001 From: Guillaume Hivert Date: Mon, 6 May 2024 19:15:09 +0200 Subject: [PATCH] ui: implement home page Signed-off-by: Guillaume Hivert --- apps/frontend/gleam.toml | 8 +- apps/frontend/index.html | 4 +- apps/frontend/manifest.toml | 22 +- .../public/Lexend-VariableFont_wght.ttf | Bin 0 -> 176220 bytes apps/frontend/public/images/lucy.svg | 7 + apps/frontend/public/images/sign-in.svg | 1 - apps/frontend/public/main.css | 20 +- apps/frontend/src/data/model.gleam | 8 +- apps/frontend/src/data/msg.gleam | 2 + apps/frontend/src/frontend.gleam | 24 +- .../src/frontend/colors/palette.gleam | 29 +++ apps/frontend/src/frontend/footer/links.gleam | 27 +++ .../frontend/src/frontend/footer/styles.gleam | 72 ++++++ apps/frontend/src/frontend/footer/view.gleam | 21 ++ apps/frontend/src/frontend/styles.gleam | 221 ++++++++++++++++++ apps/frontend/src/frontend/view.gleam | 51 ++++ 16 files changed, 479 insertions(+), 38 deletions(-) create mode 100644 apps/frontend/public/Lexend-VariableFont_wght.ttf create mode 100644 apps/frontend/public/images/lucy.svg delete mode 100644 apps/frontend/public/images/sign-in.svg create mode 100644 apps/frontend/src/frontend/colors/palette.gleam create mode 100644 apps/frontend/src/frontend/footer/links.gleam create mode 100644 apps/frontend/src/frontend/footer/styles.gleam create mode 100644 apps/frontend/src/frontend/footer/view.gleam create mode 100644 apps/frontend/src/frontend/styles.gleam create mode 100644 apps/frontend/src/frontend/view.gleam diff --git a/apps/frontend/gleam.toml b/apps/frontend/gleam.toml index 690e09b..d1d70f1 100644 --- a/apps/frontend/gleam.toml +++ b/apps/frontend/gleam.toml @@ -11,11 +11,11 @@ typescript_declarations = true [dependencies] gleam_javascript = "~> 0.8" gleam_stdlib = "~> 0.34 or ~> 1.0" -lustre = {path = "../../../lustre"} lustre_http = "~> 0.5" -plinth = {path = "../../../plinth"} -sketch = {path = "../../../sketch"} -tardis = {path = "../../packages/tardis"} +plinth = ">= 0.2.0 and < 1.0.0" +sketch = ">= 2.2.0 and < 3.0.0" +tardis = ">= 0.1.0 and < 1.0.0" +lustre = ">= 4.2.0 and < 5.0.0" [dev-dependencies] gleeunit = "~> 1.0" diff --git a/apps/frontend/index.html b/apps/frontend/index.html index a8882e8..3446931 100644 --- a/apps/frontend/index.html +++ b/apps/frontend/index.html @@ -6,9 +6,7 @@ - Obsidian Share - - + Gling
diff --git a/apps/frontend/manifest.toml b/apps/frontend/manifest.toml index de8febc..d073bdd 100644 --- a/apps/frontend/manifest.toml +++ b/apps/frontend/manifest.toml @@ -6,24 +6,24 @@ packages = [ { name = "gleam_fetch", version = "0.4.0", build_tools = ["gleam"], requirements = ["gleam_http", "gleam_javascript", "gleam_stdlib"], otp_app = "gleam_fetch", source = "hex", outer_checksum = "7446410A44A1D1328F5BC1FF4FC9CBD1570479EA69349237B3F82E34521CCC10" }, { name = "gleam_http", version = "3.6.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_http", source = "hex", outer_checksum = "8C07DF9DF8CC7F054C650839A51C30A7D3C26482AC241C899C1CEA86B22DBE51" }, { name = "gleam_javascript", version = "0.8.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_javascript", source = "hex", outer_checksum = "14D5B7E1A70681E0776BF0A0357F575B822167960C844D3D3FA114D3A75F05A8" }, - { name = "gleam_json", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "thoas"], otp_app = "gleam_json", source = "hex", outer_checksum = "8B197DD5D578EA6AC2C0D4BDC634C71A5BCA8E7DB5F47091C263ECB411A60DF3" }, + { name = "gleam_json", version = "1.0.1", build_tools = ["gleam"], requirements = ["gleam_stdlib", "thoas"], otp_app = "gleam_json", source = "hex", outer_checksum = "9063D14D25406326C0255BDA0021541E797D8A7A12573D849462CAFED459F6EB" }, { name = "gleam_otp", version = "0.10.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_stdlib"], otp_app = "gleam_otp", source = "hex", outer_checksum = "0B04FE915ACECE539B317F9652CAADBBC0F000184D586AAAF2D94C100945D72B" }, - { name = "gleam_stdlib", version = "0.36.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "C0D14D807FEC6F8A08A7C9EF8DFDE6AE5C10E40E21325B2B29365965D82EB3D4" }, + { name = "gleam_stdlib", version = "0.37.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "5398BD6C2ABA17338F676F42F404B9B7BABE1C8DC7380031ACB05BBE1BCF3742" }, { name = "gleeunit", version = "1.1.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "72CDC3D3F719478F26C4E2C5FED3E657AC81EC14A47D2D2DEBB8693CA3220C3B" }, - { name = "lustre", version = "4.1.6", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_json", "gleam_otp", "gleam_stdlib"], source = "local", path = "../../../lustre" }, + { name = "lustre", version = "4.2.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_json", "gleam_otp", "gleam_stdlib"], otp_app = "lustre", source = "hex", outer_checksum = "258F876CD7AB12C2C773F1A30F76DFC0A0ED989B720070DF32FC0717A6A0E60C" }, { name = "lustre_http", version = "0.5.2", build_tools = ["gleam"], requirements = ["gleam_fetch", "gleam_http", "gleam_javascript", "gleam_json", "gleam_stdlib", "lustre"], otp_app = "lustre_http", source = "hex", outer_checksum = "FB0478CBFA6B16DBE8ECA326DAE2EC15645E04900595EF2C4F039ABFA0512ABA" }, - { name = "plinth", version = "0.1.13", build_tools = ["gleam"], requirements = ["gleam_javascript", "gleam_json", "gleam_stdlib"], source = "local", path = "../../../plinth" }, - { name = "sketch", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "lustre", "plinth"], source = "local", path = "../../../sketch" }, - { name = "tardis", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "lustre", "plinth", "sketch"], source = "local", path = "../../packages/tardis" }, - { name = "thoas", version = "0.4.1", build_tools = ["rebar3"], requirements = [], otp_app = "thoas", source = "hex", outer_checksum = "4918D50026C073C4AB1388437132C77A6F6F7C8AC43C60C13758CC0ADCE2134E" }, + { name = "plinth", version = "0.2.0", build_tools = ["gleam"], requirements = ["gleam_javascript", "gleam_json", "gleam_stdlib"], otp_app = "plinth", source = "hex", outer_checksum = "83211E672D83F3CE14681D0ECD3AD883EE7588E423E7C9DDDB460014AD60AC24" }, + { name = "sketch", version = "2.2.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_otp", "gleam_stdlib", "lustre", "plinth"], otp_app = "sketch", source = "hex", outer_checksum = "8860E68627E33E4B63379050C1699546828CBF02364F26E191B95EA080AE483A" }, + { name = "tardis", version = "0.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "lustre", "plinth", "sketch"], otp_app = "tardis", source = "hex", outer_checksum = "C8E7BAB95C59EF50332905A06B82BB35526B7BE2F191580F3CD8790903AA49F7" }, + { name = "thoas", version = "1.2.0", build_tools = ["rebar3"], requirements = [], otp_app = "thoas", source = "hex", outer_checksum = "540C8CB7D9257F2AD0A14145DC23560F91ACDCA995F0CCBA779EB33AF5D859D1" }, ] [requirements] gleam_javascript = { version = "~> 0.8" } gleam_stdlib = { version = "~> 0.34 or ~> 1.0" } gleeunit = { version = "~> 1.0" } -lustre = { path = "../../../lustre" } +lustre = { version = ">= 4.2.0 and < 5.0.0"} lustre_http = { version = "~> 0.5" } -plinth = { path = "../../../plinth" } -sketch = { path = "../../../sketch" } -tardis = { path = "../../packages/tardis" } +plinth = { version = ">= 0.2.0 and < 1.0.0" } +sketch = { version = ">= 2.2.0 and < 3.0.0" } +tardis = { version = ">= 0.1.0 and < 1.0.0" } diff --git a/apps/frontend/public/Lexend-VariableFont_wght.ttf b/apps/frontend/public/Lexend-VariableFont_wght.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b294dc840ff5fc748fad8330e72d5dc99edf1c10 GIT binary patch literal 176220 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 literal 0 HcmV?d00001 diff --git a/apps/frontend/public/images/lucy.svg b/apps/frontend/public/images/lucy.svg new file mode 100644 index 0000000..81a3ce2 --- /dev/null +++ b/apps/frontend/public/images/lucy.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/frontend/public/images/sign-in.svg b/apps/frontend/public/images/sign-in.svg deleted file mode 100644 index fa8aca8..0000000 --- a/apps/frontend/public/images/sign-in.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/frontend/public/main.css b/apps/frontend/public/main.css index bde6ed4..1312a44 100644 --- a/apps/frontend/public/main.css +++ b/apps/frontend/public/main.css @@ -2,7 +2,7 @@ body { min-height: 100vh; background: var(--background); color: var(--text-color); - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-family: Lexend, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; } :root { @@ -16,7 +16,7 @@ body { --green: #01FF70; --purple: #8C3A96; --white: white; ---orange: #FF851B; + --orange: #FF851B; --link: #0074D9; --disabled: #ddd; --text-disabled: #333; @@ -36,11 +36,6 @@ body { } } -@keyframes progress_bar { - from { width: 100%; } - to { width: 0%; } -} - h1, h2, h3, h4, h5, h6 { margin: 0; } @@ -48,3 +43,14 @@ h1, h2, h3, h4, h5, h6 { * { box-sizing: border-box; } + +@font-face { + font-family: Lexend; + src: url("/Lexend-VariableFont_wght.ttf") format("woff2-variations"); + font-weight: 100 1000; + font-stretch: 25% 151%; +} + +a { + color: var(--a-color); +} diff --git a/apps/frontend/src/data/model.gleam b/apps/frontend/src/data/model.gleam index ee70574..e5a2f3c 100644 --- a/apps/frontend/src/data/model.gleam +++ b/apps/frontend/src/data/model.gleam @@ -1,7 +1,11 @@ pub type Model { - Model + Model(input: String) } pub fn init() { - Model + Model(input: "") +} + +pub fn update_input(model: Model, content: String) { + Model(..model, input: content) } diff --git a/apps/frontend/src/data/msg.gleam b/apps/frontend/src/data/msg.gleam index 928f6ca..2589935 100644 --- a/apps/frontend/src/data/msg.gleam +++ b/apps/frontend/src/data/msg.gleam @@ -1,3 +1,5 @@ pub type Msg { None + SubmitSearch + UpdateInput(String) } diff --git a/apps/frontend/src/frontend.gleam b/apps/frontend/src/frontend.gleam index b9778c0..f7c0f30 100644 --- a/apps/frontend/src/frontend.gleam +++ b/apps/frontend/src/frontend.gleam @@ -1,24 +1,27 @@ import data/model.{type Model} import data/msg.{type Msg} +import frontend/view +import gleam/io import lustre import lustre/effect -import lustre/element/html as h import lustre/update import sketch/lustre as sketch import sketch/options as sketch_options import tardis pub fn main() { - let assert Ok(debugger_) = tardis.singleton("gling") + let init = fn(_) { #(model.init(), effect.none()) } + + let assert Ok(debugger_) = tardis.single("gling") let assert Ok(cache) = - sketch_options.document() + sketch_options.node() |> sketch.setup() let assert Ok(_) = - fn(_) { #(model.init(), effect.none()) } - |> lustre.application(update, view) - |> sketch.wrap(cache) + view.view + |> sketch.compose(cache) + |> lustre.application(init, update, _) |> tardis.wrap(debugger_) |> lustre.start("#app", Nil) |> tardis.activate(debugger_) @@ -26,10 +29,11 @@ pub fn main() { fn update(model: Model, msg: Msg) { case msg { + msg.UpdateInput(content) -> + model + |> model.update_input(content) + |> update.none() + msg.SubmitSearch -> update.none(model) msg.None -> update.none(model) } } - -fn view(_model: Model) { - h.div([], []) -} diff --git a/apps/frontend/src/frontend/colors/palette.gleam b/apps/frontend/src/frontend/colors/palette.gleam new file mode 100644 index 0000000..bd776a5 --- /dev/null +++ b/apps/frontend/src/frontend/colors/palette.gleam @@ -0,0 +1,29 @@ +pub type Palette { + Palette( + white: String, + dark_white: String, + unnamed_blue: String, + faff_pink: String, + dark_faff_pink: String, + aged_plastic_yellow: String, + unexpected_aubergine: String, + underwater_blue: String, + charcoal: String, + black: String, + blacker: String, + ) +} + +pub const dark = Palette( + white: "#fefefc", + dark_white: "#aeaeac", + unnamed_blue: "#a6f0fc", + faff_pink: "#ffaff3", + dark_faff_pink: "#eb94de", + aged_plastic_yellow: "#fffbe8", + unexpected_aubergine: "#584355", + underwater_blue: "#292d3e", + charcoal: "#2f2f2f", + black: "#1e1e1e", + blacker: "#151515", +) diff --git a/apps/frontend/src/frontend/footer/links.gleam b/apps/frontend/src/frontend/footer/links.gleam new file mode 100644 index 0000000..c58e559 --- /dev/null +++ b/apps/frontend/src/frontend/footer/links.gleam @@ -0,0 +1,27 @@ +pub const links = [ + #( + "Gleam Resources", + [ + #("https://gleam.run/", "Homepage"), + #("https://packages.gleam.run/", "Gleam Packages"), + #("https://gleam.run/documentation/", "Docs"), + #("https://tour.gleam.run/", "Language Tour"), + #("https://github.com/gleam-lang", "Code"), + ], + ), + #( + "Gleam Community", + [ + #("https://gleam.run/news/", "News"), + #("https://gleam.run/community/", "Community"), + #("https://github.com/sponsors/lpil", "Sponsor Gleam"), + ], + ), + #( + "Gling", + [ + #("https://github.com/sponsors/ghivert", "Sponsor"), + #("https://github.com/ghivert/gling", "Code"), + ], + ), +] diff --git a/apps/frontend/src/frontend/footer/styles.gleam b/apps/frontend/src/frontend/footer/styles.gleam new file mode 100644 index 0000000..6c6fcce --- /dev/null +++ b/apps/frontend/src/frontend/footer/styles.gleam @@ -0,0 +1,72 @@ +import frontend/colors/palette +import sketch as s +import sketch/size.{px} + +pub fn footer() { + s.class([ + s.background(palette.dark.charcoal), + s.display("flex"), + s.flex_direction("column"), + s.padding(px(24)), + s.align_items("center"), + s.gap(px(48)), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn footer_built() { + s.class([ + s.display("flex"), + s.flex_direction("column"), + s.align_items("center"), + s.justify_content("center"), + s.font_size(size.rem_(0.8)), + s.line_height("1.3"), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn footer_links() { + s.class([ + s.display("grid"), + s.grid_template_columns("repeat(3, 1fr)"), + s.grid_template_rows("repeat(6, auto)"), + s.gap(px(12)), + s.max_width(px(700)), + s.width(size.percent(100)), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn footer_section() { + s.class([ + s.display("grid"), + s.grid_template_columns("1fr"), + s.grid_template_rows("subgrid"), + s.grid_row("1 / 7"), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn foot_title() { + s.class([ + s.color(palette.dark.dark_white), + s.font_weight("500"), + s.padding_("6px 0px"), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn foot_lk() { + s.class([ + s.font_size(size.rem_(0.9)), + s.color(palette.dark.white), + s.text_decoration("none"), + ]) + |> s.to_lustre() +} diff --git a/apps/frontend/src/frontend/footer/view.gleam b/apps/frontend/src/frontend/footer/view.gleam new file mode 100644 index 0000000..c298ff8 --- /dev/null +++ b/apps/frontend/src/frontend/footer/view.gleam @@ -0,0 +1,21 @@ +import frontend/footer/links.{links} +import frontend/footer/styles as s +import gleam/list +import lustre/attribute as a +import lustre/element/html as h + +pub fn view() { + h.div([s.footer()], [ + h.div([s.footer_links()], { + use #(title, links) <- list.map(links) + h.div([s.footer_section()], { + links + |> list.map(fn(i) { h.a([s.foot_lk(), a.href(i.0)], [h.text(i.1)]) }) + |> list.prepend(h.div([s.foot_title()], [h.text(title)])) + }) + }), + h.div([s.footer_built()], [ + h.text("Gling is proudly built with 💜 in gleam for gleamlins"), + ]), + ]) +} diff --git a/apps/frontend/src/frontend/styles.gleam b/apps/frontend/src/frontend/styles.gleam new file mode 100644 index 0000000..6a7015e --- /dev/null +++ b/apps/frontend/src/frontend/styles.gleam @@ -0,0 +1,221 @@ +import frontend/colors/palette +import gleam/int +import sketch as s +import sketch/size.{px, vh} + +pub fn layout() { + s.class([ + s.display("grid"), + s.grid_template_areas( + "\"navbar\" + \"main\" + \"footer\"", + ), + s.property("--a-color", palette.dark.faff_pink), + s.grid_template_rows("auto 1fr auto"), + s.min_height(vh(100)), + s.background(palette.dark.underwater_blue), + s.color(palette.dark.white), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn navbar() { + s.class([ + s.display("flex"), + s.align_items("baseline"), + s.justify_content("end"), + s.grid_area("navbar"), + s.padding(px(48)), + s.gap(px(48)), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn coming_soon() { + s.class([s.font_size(size.rem_(0.7))]) + |> s.memo() + |> s.to_lustre() +} + +pub fn trending() { + s.class([ + s.display("flex"), + s.flex_direction("column"), + s.gap(px(3)), + s.align_items("end"), + s.color(palette.dark.dark_white), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn search_wrapper() { + s.class([ + s.display("grid"), + s.grid_template_rows("auto auto auto"), + s.grid_template_columns("auto auto auto"), + s.grid_template_areas( + "\"title . .\" + \"input input input\" + \". . submit\"", + ), + s.padding(px(48)), + s.width(size.percent(100)), + s.max_width(px(700)), + s.gap(px(24)), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn main_wrapper() { + s.class([ + s.grid_area("main"), + s.display("flex"), + s.align_items("center"), + s.justify_content("center"), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn search_title() { + s.class([ + s.font_family("Lexend"), + s.display("flex"), + s.align_items("center"), + s.gap(px(12)), + s.font_size(size.rem_(2.5)), + s.color(palette.dark.white), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn search_title_wrapper() { + s.class([ + s.grid_area("title"), + s.display("flex"), + s.flex_direction("column"), + s.gap(px(9)), + s.font_size(size.rem_(0.9)), + s.color(palette.dark.dark_white), + s.line_height("1.3"), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn search_input() { + s.class([ + s.grid_area("input"), + s.appearance("none"), + s.background(palette.dark.white), + s.border("none"), + s.padding(px(18)), + s.border_radius(px(18)), + s.transition("outline .3s"), + s.outline("2px solid transparent"), + s.color(palette.dark.charcoal), + s.active([s.outline("2px solid " <> palette.dark.faff_pink)]), + s.focus([s.outline("2px solid " <> palette.dark.faff_pink)]), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn search_submit() { + s.class([ + s.grid_area("submit"), + s.appearance("none"), + s.border("none"), + s.background(palette.dark.faff_pink), + s.border_radius(px(50)), + s.padding_top(px(12)), + s.padding_bottom(px(12)), + s.padding_right(px(24)), + s.padding_left(px(24)), + s.color(palette.dark.charcoal), + s.font_size(size.rem(1)), + s.outline("none"), + s.transition("background .3s"), + s.active([s.background(palette.dark.dark_faff_pink)]), + s.focus([s.background(palette.dark.dark_faff_pink)]), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn search_lucy() { + s.class([s.width(px(40))]) + |> s.memo() + |> s.to_lustre() +} + +pub fn footer() { + s.class([ + s.background(palette.dark.charcoal), + s.display("flex"), + s.flex_direction("column"), + s.padding(px(24)), + s.align_items("center"), + s.gap(px(48)), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn footer_built() { + s.class([ + s.display("flex"), + s.flex_direction("column"), + s.align_items("center"), + s.justify_content("center"), + s.font_size(size.rem_(0.8)), + s.line_height("1.3"), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn footer_links() { + s.class([ + s.display("grid"), + s.grid_template_columns("repeat(3, 1fr)"), + s.grid_template_rows("repeat(6, auto)"), + s.gap(px(12)), + s.max_width(px(700)), + s.width(size.percent(100)), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn footer_section() { + s.class([ + s.display("grid"), + s.grid_template_columns("1fr"), + s.grid_template_rows("subgrid"), + s.grid_row("1 / 7"), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn foot_title() { + s.class([ + s.color(palette.dark.dark_white), + s.font_weight("500"), + s.padding_("6px 0px"), + ]) + |> s.memo() + |> s.to_lustre() +} + +pub fn foot_lk() { + s.class([s.font_size(size.rem_(0.9))]) + |> s.to_lustre() +} diff --git a/apps/frontend/src/frontend/view.gleam b/apps/frontend/src/frontend/view.gleam new file mode 100644 index 0000000..0800907 --- /dev/null +++ b/apps/frontend/src/frontend/view.gleam @@ -0,0 +1,51 @@ +import data/model.{type Model} +import data/msg +import frontend/footer/view as footer +import frontend/styles as s +import gleam/dict +import gleam/dynamic +import gleam/io +import gleam/json +import gleam/list +import gleam/result +import lustre/attribute as a +import lustre/element +import lustre/element/html as h +import lustre/event as e + +pub fn view(model: Model) { + h.div([s.layout()], [navbar(), body(model), footer.view()]) +} + +fn navbar() { + h.div([s.navbar()], [ + h.div([], [h.text("Packages")]), + h.div([s.trending()], [ + h.text("Trending"), + h.span([s.coming_soon()], [h.text(" (coming soon…)")]), + ]), + ]) +} + +fn body(model: Model) { + h.main([s.main_wrapper()], [ + h.form([e.on_submit(msg.SubmitSearch), s.search_wrapper()], [ + h.div([s.search_title_wrapper()], [ + h.div([s.search_title()], [ + h.img([a.src("/images/lucy.svg"), s.search_lucy()]), + h.text("Gling"), + ]), + h.text( + "Gling can search through all public gleam packages, to help you find the function you're looking for! Enter a type or a function name to get some results.", + ), + ]), + h.input([ + s.search_input(), + a.placeholder("Search for a function, or a type"), + e.on_input(msg.UpdateInput), + a.value(model.input), + ]), + h.input([a.type_("submit"), a.value("Submit"), s.search_submit()]), + ]), + ]) +}