git.iko.soy/horeca-productions/landing
on master help sign in
.
commit088d9ed81b3726244a24bd9df859314606239d73 authoriko <mail@iko.soy> dateSun 6 Apr 2025, 12:00 (2 years ago) parentdd88dc5
11 files changed+93−14
app/Route/Index.elm+73−13 elm-pages.config.mjs−1 public/alim.jpg public/bg.png public/fork.png public/ilia.jpg public/oil.png public/olives.png public/team.png public/yasha.jpg style.css+20
app/Route/Index.elm+73−13
@@ -1,29 +1,33 @@
11module Route.Index exposing (ActionData, Data, Model, Msg, route)
22
33import BackendTask exposing (BackendTask)
4+import Effect
45import Element exposing (..)
56import Element.Background as Background
67import Element.Border as Border
8+import Element.Events as Events
79import Element.Font as Font
810import FatalError exposing (FatalError)
911import Head
1012import Head.Seo as Seo
13+import Html
1114import Html.Attributes exposing (style)
15+import Html.Events exposing (onClick)
1216import Pages.Url
1317import PagesMsg exposing (PagesMsg)
1418import Route
15−import RouteBuilder exposing (App, StatelessRoute)
19+import RouteBuilder exposing (App, StatefulRoute, StatelessRoute)
1620import Shared
1721import UrlPath
1822import View exposing (View)
1923
2024
2125type alias Model =
22− {}
26+ { teamExpanded : Bool }
2327
2428
25−type alias Msg =
26− ()
29+type Msg
30+ = ExpandTeam
2731
2832
2933type alias RouteParams =
@@ -31,28 +35,37 @@ type alias RouteParams =
3135
3236
3337type alias Data =
34− { message : String
35− }
38+ {}
3639
3740
3841type alias ActionData =
3942 {}
4043
4144
42−route : StatelessRoute RouteParams Data ActionData
45+route : StatefulRoute RouteParams Data ActionData Model Msg
4346route =
4447 RouteBuilder.single
4548 { head = head
4649 , data = data
4750 }
48− |> RouteBuilder.buildNoState { view = view }
51+ |> RouteBuilder.buildWithLocalState
52+ { view = view
53+ , init = \_ _ -> ( { teamExpanded = False }, Effect.None )
54+ , update = \_ _ msg model -> ( update msg model, Effect.None )
55+ , subscriptions = \_ _ _ _ -> Sub.none
56+ }
57+
58+
59+update : Msg -> Model -> Model
60+update msg model =
61+ case msg of
62+ ExpandTeam ->
63+ { model | teamExpanded = True }
4964
5065
5166data : BackendTask FatalError Data
5267data =
5368 BackendTask.succeed Data
54− |> BackendTask.andMap
55− (BackendTask.succeed "Hello!")
5669
5770
5871head :
@@ -78,9 +91,10 @@ head app =
7891view :
7992 App Data ActionData RouteParams
8093 -> Shared.Model
94+ -> Model
8195 -> View (PagesMsg Msg)
82−view app shared =
83− { title = "elm-pages is running"
96+view app shared model =
97+ { title = "Horeca Productions"
8498 , body =
8599 column [ width fill ]
86100 [ column [ width fill, Background.color (rgb255 53 30 30), spacing 88 ]
@@ -144,7 +158,7 @@ view app shared =
144158 , el
145159 [ Background.color (rgb255 210 197 178)
146160 , width fill
147− , behindContent (image [ height (px 605), alignRight, moveRight 46, moveDown 74 ] { src = "/oil.png", description = "oil" })
161+ , behindContent (image [ height (px 605), alignRight, moveDown 74 ] { src = "/oil.png", description = "oil" })
148162 ]
149163 (paragraph
150164 [ ubuntu
@@ -155,6 +169,47 @@ view app shared =
155169 [ text "история бренда" ]
156170 )
157171 , el [ Background.color (rgb255 210 197 178), width fill, paddingXY 135 95, Font.size 24 ] (paragraph [ raleway, Font.color darkColor ] [ text "Мы — Horeca Productions, команда, рожденная общей мечтой. Мы верили: рестораны могут покорять сердца не только кухней, но атмосферой, стилем, онлайн-присутствием. Энтузиасты, верящие в силу красивой идеи и продвижения, мы создаём вдохновляющие стратегии, завораживающий дизайн. Наша цель — сделать ваш ресторан звездой." ])
172+ , el [ width fill, Background.image "/bg.png" ]
173+ (el [ paddingXY 105 95, width fill ]
174+ (column [ width fill, Background.color (rgb255 196 185 151), width fill ]
175+ ([ el [ paddingXY 105 125 ] (image [ height (px 100) ] { src = "/team.png", description = "team" })
176+ , row [ paddingEach { top = 0, left = 115, right = 115, bottom = 95 }, spaceEvenly, width fill ]
177+ [ row [ spacing 30 ]
178+ [ image [ height (px 240), width (px 160) ] { src = "/alim.jpg", description = "Alim" }
179+ , column [ width (px 260), height (px 240) ]
180+ [ paragraph [ alignTop, Font.size 32 ] [ text "Алим Лаипанов" ]
181+ , paragraph [ alignBottom, Font.size 18 ] [ text "Копирайтер, администратор телеграм-канала. Создание текстов для рекламы, ведение и продвижение контента в Телеграм-канале." ]
182+ ]
183+ ]
184+ , row [ spacing 30 ]
185+ [ image [ height (px 240), width (px 160) ] { src = "/ilia.jpg", description = "Alim" }
186+ , column [ width (px 260), height (px 240) ]
187+ [ paragraph [ alignTop, Font.size 32 ] [ text "Илья Костюченко" ]
188+ , paragraph [ alignBottom, Font.size 18 ] [ text "Ведущий технический специалист. Разработка и поддержка технической инфраструктуры компании." ]
189+ ]
190+ ]
191+ ]
192+ ]
193+ ++ (case model.teamExpanded of
194+ False ->
195+ [ el [ Events.onClick <| PagesMsg.fromMsg ExpandTeam, pointer, Font.color redColor, ubuntu, paddingEach { top = 0, left = 115, right = 115, bottom = 95 } ] (text "подробнее")
196+ ]
197+
198+ True ->
199+ [ row [ paddingEach { top = 0, left = 115, right = 115, bottom = 95 }, spaceEvenly, width fill ]
200+ [ row [ spacing 30 ]
201+ [ image [ height (px 240), width (px 160) ] { src = "/yasha.jpg", description = "Alim" }
202+ , column [ width (px 260), height (px 240) ]
203+ [ paragraph [ alignTop, Font.size 32 ] [ text "Яш Вархдхан Сингх" ]
204+ , paragraph [ alignBottom, Font.size 18 ] [ text "Гид гастротуризма. Проведение гастрономических туров, презентация культурных и гастрономических аспектов." ]
205+ ]
206+ ]
207+ ]
208+ ]
209+ )
210+ )
211+ )
212+ )
158213 , el [ width fill, Background.color (rgb255 210 197 178) ] (image [ centerX, height (px 613) ] { src = "/fork.png", description = "fork" })
159214 ]
160215 }
@@ -170,6 +225,11 @@ lightColor =
170225 rgb255 210 197 178
171226
172227
228+redColor : Color
229+redColor =
230+ rgb255 120 2 4
231+
232+
173233darkColor : Color
174234darkColor =
175235 rgb255 53 30 30
elm-pages.config.mjs−1
@@ -6,7 +6,6 @@ export default {
66 adapter,
77 headTagsTemplate(context) {
88 return `
9−<link rel="stylesheet" href="/style.css" />
109<meta name="generator" content="elm-pages v${context.cliVersion}" />
1110`;
1211 },
public/alim.jpgnew file

Binary file not shown.

public/bg.pngnew file

Binary file not shown.

public/fork.png

Binary file not shown.

public/ilia.jpgnew file

Binary file not shown.

public/oil.png

Binary file not shown.

public/olives.png

Binary file not shown.

public/team.pngnew file

Binary file not shown.

public/yasha.jpgnew file

Binary file not shown.

style.css+20
@@ -1,2 +1,22 @@
11@import url('https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap');
22@import url('https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap');
3+@media (max-width:639px) {
4+ html {
5+ zoom:.3!important
6+ }
7+}
8+@media (min-width:640px) and (max-width:799px) {
9+ html {
10+ zoom:.5!important
11+ }
12+}
13+@media (min-width:800px) and (max-width:999px) {
14+ html {
15+ zoom:.6!important
16+ }
17+}
18+@media (min-width:1000px) and (max-width:1680px) {
19+ html {
20+ zoom:.8!important
21+ }
22+}