git.iko.soy/rowtype-yoga/ry-blocks
on main help sign in
Segmented
commit46f147a5e264e5933bb0c6b0e4174f66b8e91f84 authorMark Eibes <mark.eibes@gmail.com> dateTue 5 Jan 2021, 23:15 (6 years ago) parent89527fa
6 files changed+326−314
src/Yoga/Block/Atom/Button/Style.purs+58−58 src/Yoga/Block/Atom/Input/Style.purs+40−40 src/Yoga/Block/Atom/Segmented/Style.purs+19−12 src/Yoga/Block/Atom/Segmented/View/ActiveIndicator.purs+7−2 src/Yoga/Block/Atom/Toggle/Style.purs+1−1 src/Yoga/Block/Container/Style.purs+201−201
src/Yoga/Block/Atom/Button/Style.purs+58−58
@@ -4,10 +4,10 @@ import Yoga.Prelude.Style
44import Data.Interpolate (i)
55import Yoga.Block.Container.Style (colour)
66
7−type Props f r
8− = ( css ∷ f Style
9− | r
10− )
7+type Props f r =
8+ ( css ∷ f Style
9+ | r
10+ )
1111
1212gradientBackground ∷ StyleProperty
1313gradientBackground =
@@ -34,11 +34,11 @@ backgroundAnimation =
3434button ∷ Style
3535button =
3636 css
37− { background: str colour.interfaceBackground
37+ { background: str colour.backgroundLayer4
3838 , boxShadow: str "0 1px 4px rgba(0,0,0,0.30)"
3939 , border: str $ i "1px solid transparent"
40− , borderTop: str $ i "1px solid " colour.interfaceBackgroundHighlight
41− , borderBottom: str $ i "1px solid " colour.interfaceBackgroundShadow
40+ , borderTop: str $ i "1px solid " colour.backgroundLayer5
41+ , borderBottom: str $ i "1px solid " colour.backgroundLayer3
4242 , display: inlineFlex
4343 , padding: str "calc(var(--s-1) * 0.8) var(--s0)"
4444 , paddingBottom: str "calc(var(--s-1) * 0.8 + 1px)"
@@ -54,61 +54,61 @@ button =
5454 , userSelect: none
5555 , transition: str "all 0.2s ease-out" <> str "transform 50ms ease-in"
5656 , """&[data-button-shape="pill"]""":
57− nest
58− { borderRadius: str "calc(var(--s1) * 0.85)"
59− , padding: str "calc(var(--s-1) * 0.85) var(--s0)"
60− , paddingBottom: str "calc(var(--s-1))"
61− }
57+ nest
58+ { borderRadius: str "calc(var(--s1) * 0.85)"
59+ , padding: str "calc(var(--s-1) * 0.85) var(--s0)"
60+ , paddingBottom: str "calc(var(--s-1))"
61+ }
6262 , """&[data-button-type="primary"]""":
63− nest
64− { background: gradientBackground
65− , backgroundSize: str "200% 200%"
66− , fontWeight: str "600"
67− , letterSpacing: str "calc(var(--s-5)* (0.1))"
68− , animation: backgroundAnimation <> str " alternate ease-out 10s infinite"
69− , boxShadow: str "0 1px 4px 0px rgba(0,0,0,0.40)"
70− , borderColor: str "transparent"
71− , color: str colour.highlightText
72− , """&:focus-visible""":
73− nest
74− { borderColor: str "inherit"
75− }
76− , """&:active""":
77− nest
78− { boxShadow: str "inset 0 1px 6px rgba(0,0,0,0.40)"
79− , border: str $ i "1px solid transparent"
80− }
81− , "&:disabled":
82− nest
83− { background: str colour.highlightDisabled
84− }
85− }
63+ nest
64+ { background: gradientBackground
65+ , backgroundSize: str "200% 200%"
66+ , fontWeight: str "600"
67+ , letterSpacing: str "calc(var(--s-5)* (0.1))"
68+ , animation: backgroundAnimation <> str " alternate ease-out 10s infinite"
69+ , boxShadow: str "0 1px 4px 0px rgba(0,0,0,0.40)"
70+ , borderColor: str "transparent"
71+ , color: str colour.highlightText
72+ , """&:focus-visible""":
73+ nest
74+ { borderColor: str "inherit"
75+ }
76+ , """&:active""":
77+ nest
78+ { boxShadow: str "inset 0 1px 6px rgba(0,0,0,0.40)"
79+ , border: str $ i "1px solid transparent"
80+ }
81+ , "&:disabled":
82+ nest
83+ { background: str colour.highlightDisabled
84+ }
85+ }
8686 , """&[data-button-type="dangerous"]""":
87− nest
88− { color: str $ colour.interfaceDangerousText
89− , background: str $ colour.interfaceBackgroundDangerous
90− , fontWeight: str "600"
91− , letterSpacing: str "calc(var(--s-5) * -0.10)"
92− }
87+ nest
88+ { color: str $ colour.interfaceDangerousText
89+ , background: str $ colour.interfaceBackgroundDangerous
90+ , fontWeight: str "600"
91+ , letterSpacing: str "calc(var(--s-5) * -0.10)"
92+ }
9393 , """&:focus""": nest { outline: none }
9494 , """&:focus-visible""":
95− nest
96− { boxShadow: str $ "0 0 0 var(--s-4) " <> colour.highlight
97− }
95+ nest
96+ { boxShadow: str $ "0 0 0 var(--s-4) " <> colour.highlight
97+ }
9898 , """&:active""":
99− nest
100− { boxShadow: str $ "inset 0 1px var(--s-1) rgba(0,0,0,0.20)"
101− , borderTop: str $ i "1px solid " colour.interfaceBackgroundShadow
102− , borderBottom: str $ i "1px solid " colour.interfaceBackgroundShadow
103− , transform: str "scale3d(0.95,0.95,0.95)"
104− , transition: str "transform 50ms ease"
105− }
99+ nest
100+ { boxShadow: str $ "inset 0 1px var(--s-1) rgba(0,0,0,0.20)"
101+ , borderTop: str $ i "1px solid " colour.interfaceBackgroundShadow
102+ , borderBottom: str $ i "1px solid " colour.interfaceBackgroundShadow
103+ , transform: str "scale3d(0.95,0.95,0.95)"
104+ , transition: str "transform 50ms ease"
105+ }
106106 , "&:disabled":
107− nest
108− { color: str colour.interfaceTextDisabled
109− , boxShadow: none
110− , background: str colour.interfaceBackgroundDisabled
111− , borderTop: str $ i "1px solid " colour.interfaceBackgroundShadow
112− , borderBottom: str $ i "1px solid " colour.interfaceBackgroundShadow
113− }
107+ nest
108+ { color: str colour.interfaceTextDisabled
109+ , boxShadow: none
110+ , background: str colour.interfaceBackgroundDisabled
111+ , borderTop: str $ i "1px solid " colour.interfaceBackgroundShadow
112+ , borderBottom: str $ i "1px solid " colour.interfaceBackgroundShadow
113+ }
114114 }
src/Yoga/Block/Atom/Input/Style.purs+40−40
@@ -153,46 +153,46 @@ leftIconContainer =
153153inputContainer ∷ ∀ r. { | Props OptionalProp r } -> Style
154154inputContainer props = theCss <>? props.css
155155 where
156− theCss =
157− css
158− { position: relative
159− , boxSizing: borderBox
160− , backgroundColor: str colour.inputBackground
161− , display: flex
162− , width: str "calc(var(--s4) * 2)"
163− , "--left-icon-size": var "--s0"
164− , "--right-icon-size": str "calc(var(--s0) * 1.2)"
165− , "--input-border-radius": var "--s-1"
166− , "--input-side-padding": var "--s-1"
167− , "--input-top-padding": var "--s-5"
168− , "--input-bottom-padding": var "--s-5"
169− , alignItems: center
170− , justifyContent: center
171− , paddingLeft: str "calc(var(--input-side-padding) - var(--border-width))"
172− , paddingRight: str "calc(var(--input-side-padding) - var(--border-width))"
173− , paddingTop: str "calc(var(--input-top-padding) - var(--border-width))"
174− , paddingBottom: str "calc(var(--input-bottom-padding) - var(--border-width))"
175− , gap: str "calc(var(--input-side-padding) / 2)"
176− , "--border-width": str "1px"
177− , border: str $ "var(--border-width) solid " <> colour.inputBorder
178− , borderRadius: var "--input-border-radius"
179− , """&[data-invalid="false"]""":
180− nest
181− { borderColor: str colour.success
182− , "--border-width": str "var(--s-5)"
183− }
184− , """&[data-invalid="true"]""":
185− nest
186− { borderColor: str colour.invalid
187− , "--border-width": str "var(--s-5)"
188− }
189− , "&:focus-within":
190− nest
191− { "--border-width": str "var(--s-5)"
192− , borderColor: str colour.highlight
193− , transition: str "border-color 0s linear 0.1s"
194− }
195− }
156+ theCss =
157+ css
158+ { position: relative
159+ , boxSizing: borderBox
160+ , backgroundColor: str colour.inputBackground
161+ , display: flex
162+ , width: str "calc(var(--s4) * 2)"
163+ , "--left-icon-size": var "--s0"
164+ , "--right-icon-size": str "calc(var(--s0) * 1.2)"
165+ , "--input-border-radius": var "--s-1"
166+ , "--input-side-padding": var "--s-1"
167+ , "--input-top-padding": var "--s-5"
168+ , "--input-bottom-padding": var "--s-5"
169+ , alignItems: center
170+ , justifyContent: center
171+ , paddingLeft: str "calc(var(--input-side-padding) - var(--border-width))"
172+ , paddingRight: str "calc(var(--input-side-padding) - var(--border-width))"
173+ , paddingTop: str "calc(var(--input-top-padding) - var(--border-width))"
174+ , paddingBottom: str "calc(var(--input-bottom-padding) - var(--border-width))"
175+ , gap: str "calc(var(--input-side-padding) / 2)"
176+ , "--border-width": str "1px"
177+ , border: str $ "var(--border-width) solid " <> colour.inputBorder
178+ , borderRadius: var "--input-border-radius"
179+ , """&[data-invalid="false"]""":
180+ nest
181+ { borderColor: str colour.success
182+ , "--border-width": str "2px"
183+ }
184+ , """&[data-invalid="true"]""":
185+ nest
186+ { borderColor: str colour.invalid
187+ , "--border-width": str "2px)"
188+ }
189+ , "&:focus-within":
190+ nest
191+ { "--border-width": str "2px"
192+ , borderColor: str colour.highlight
193+ , transition: str "border-color 0s linear 0.1s"
194+ }
195+ }
196196
197197inputWrapper ∷ Style
198198inputWrapper =
src/Yoga/Block/Atom/Segmented/Style.purs+19−12
@@ -13,9 +13,10 @@ cluster ∷ Style
1313cluster =
1414 css
1515 { overflow: visible
16− , flex: str "1"
1716 , display: str "inline-flex"
1817 , userSelect: none
18+ , padding: _0
19+ , margin: _0
1920 }
2021
2122segmented ∷ Style
@@ -27,13 +28,14 @@ segmented = styles
2728 , margin: _0
2829 , width: auto
2930 , display: flex
31+ , boxSizing: borderBox
3032 , flex: str "1"
3133 , minHeight: str "min-content"
32− , background: str colour.backgroundLayer3
34+ , background: str colour.backgroundLayer2
3335 , boxShadow: str "inset 0 1 0 rgba(0,0,0,0.1)"
3436 , borderRadius: str "calc(var(--s-1) * 0.8)"
35− , border: str $ i "1px solid " colour.interfaceBackground
36− , borderBottom: str $ i "1px solid " colour.interfaceBackgroundShadow
37+ , border: str $ i "1px solid " colour.backgroundLayer1
38+ , borderBottom: str $ i "1px solid " colour.backgroundLayer1
3739 , padding: _0
3840 , overflow: visible
3941 , userSelect: none
@@ -43,21 +45,27 @@ activeElementWrapper ∷ Style
4345activeElementWrapper =
4446 css
4547 { position: relative
48+ , boxSizing: borderBox
4649 , width: str "0"
50+ , height: str "100%"
4751 , overflow: visible
52+ , padding: _0
53+ , margin: _0
4854 }
4955
5056activeElement ∷ Style
5157activeElement =
5258 css
5359 { position: absolute
60+ , boxSizing: borderBox
5461 , display: block
5562 , borderRadius: str "calc(var(--s-1) * 0.8)"
56− , background: str colour.backgroundLayer5
57− , borderTop: str $ i "1px solid " colour.interfaceBackgroundHighlight
58− , borderBottom: str $ i "1px solid " colour.interfaceBackgroundShadow
63+ , background: str colour.backgroundLayer4
64+ , borderTop: str $ i "1px solid " colour.backgroundLayer5
65+ , borderBottom: str $ i "1px solid " colour.backgroundLayer3
5966 , boxShadow: str "0 1px 2px rgba(20,20,20,0.67)"
6067 , padding: _0
68+ , margin: _0
6169 , zIndex: str "3"
6270 }
6371
@@ -71,8 +79,7 @@ button { isFirst, isLast } =
7179 , border: none
7280 , padding: _0
7381 , fontSize: str "var(--s0)"
74− , marginLeft: _0
75− , marginRight: _0
82+ , margin: _0
7683 , boxSizing: borderBox
7784 , zIndex: str "3"
7885 , minWidth: var "--s2"
@@ -91,15 +98,15 @@ buttonContent { isFirst, isLast } =
9198 css
9299 { "&:active": nest { outline: str "0" }
93100 , "&:focus": nest { outline: none }
94− , paddingTop: str "1px"
95− , paddingBottom: str "1px"
101+ , margin: _0
102+ , paddingTop: str "var(--s-5)"
103+ , paddingBottom: str "var(--s-4)"
96104 , paddingLeft: str if isFirst then edgePadding else inBetweenPadding
97105 , paddingRight: str if isLast then edgePadding else inBetweenPadding
98106 , borderRadius: str "calc(var(--s-1) * 0.75)"
99107 , border: str $ i borderSize " solid transparent"
100108 , display: flex
101109 , alignItems: center
102− , outlineRight: str "1px solid red"
103110 , justifyContent: center
104111 , overflow: visible
105112 , userSelect: none
src/Yoga/Block/Atom/Segmented/View/ActiveIndicator.purs+7−2
@@ -98,10 +98,15 @@ component =
9898 }
9999 , onDragStart:
100100 Motion.onDragStart \_ pi -> do
101− setDragX (Just pi.point.x)
101+ maybeBbox <- getBoundingBoxFromRef (TwoOrMore.head props.activeItemRefs)
102+ for_ maybeBbox \bbox ->
103+ setDragX (Just (pi.point.x - bbox.left))
102104 , onDrag:
103105 Motion.onDrag \_ pi -> do
104− when (isJust maybeDragX) $ setDragX (Just pi.point.x)
106+ when (isJust maybeDragX) do
107+ maybeBbox <- getBoundingBoxFromRef (TwoOrMore.head props.activeItemRefs)
108+ for_ maybeBbox \bbox ->
109+ setDragX (Just (pi.point.x - bbox.left))
105110 , onDragEnd:
106111 Motion.onDragEnd \_ pi -> do
107112 let
src/Yoga/Block/Atom/Toggle/Style.purs+1−1
@@ -38,7 +38,7 @@ theToggle =
3838 css
3939 { width: str "calc(var(--s2) * 0.85)"
4040 , height: str "calc(var(--s2) * 0.85)"
41− , background: str $ colour.interfaceBackground
41+ , background: str $ colour.backgroundLayer4
4242 , border: none
4343 , borderRadius: str $ "calc(var(--s2) / 2)"
4444 , position: absolute
src/Yoga/Block/Container/Style.purs+201−201
@@ -31,113 +31,113 @@ mkGlobal ∷ Maybe DarkOrLightMode -> Style
3131mkGlobal maybeMode =
3232 css
3333 { "body, html":
34− nested
35− $ css
36− { minHeight: 100.0 # vh
37− , minWidth: 100.0 # vw
38− , lineHeight: str "1.15"
39− , "WebkitTextSizeAdjust": _100percent
40− , transition: str "background,color 0.33s ease-in"
41− }
34+ nested
35+ $ css
36+ { minHeight: 100.0 # vh
37+ , minWidth: 100.0 # vw
38+ , lineHeight: str "1.15"
39+ , "WebkitTextSizeAdjust": _100percent
40+ , transition: str "background,color 0.33s ease-in"
41+ }
4242 , ":root":
43− nested $ variables
44− <> fontVariables { main: "Inter", mono: "Victor Mono, Menlo, Consolas, Monaco, Liberation Mono, Lucida Console" }
43+ nested $ variables
44+ <> fontVariables { main: "Inter", mono: "Victor Mono, Menlo, Consolas, Monaco, Liberation Mono, Lucida Console" }
4545 , html:
46− nested
47− $ css
48− { boxSizing: str "border-box"
49− }
46+ nested
47+ $ css
48+ { boxSizing: str "border-box"
49+ }
5050 , body:
51− nested
52− $ css
53− { fontFamily: str "var(--main-font)"
54− , background: str colour.background
55− , color: str colour.text
56− , margin: str "0"
57− }
58− <> case maybeMode of
59− Nothing -> autoSwitchColourTheme
60− Just DarkMode -> darkModeStyle
61− Just LightMode -> lightModeStyle
51+ nested
52+ $ css
53+ { fontFamily: str "var(--main-font)"
54+ , background: str colour.background
55+ , color: str colour.text
56+ , margin: str "0"
57+ }
58+ <> case maybeMode of
59+ Nothing -> autoSwitchColourTheme
60+ Just DarkMode -> darkModeStyle
61+ Just LightMode -> lightModeStyle
6262 , "pre,code":
63− nest
64− { fontFamily: str "var(--mono-font)"
65− }
63+ nest
64+ { fontFamily: str "var(--mono-font)"
65+ }
6666 , "h1,h2,h3,h4":
67− nest
68− { lineHeight: var "--line-height-small"
69− , fontWeight: str "700"
70− , marginTop: str "var(--s-3)"
71− }
67+ nest
68+ { lineHeight: var "--line-height-small"
69+ , fontWeight: str "700"
70+ , marginTop: str "var(--s-3)"
71+ }
7272 , h1:
73− nested
74− $ css
75− { "--h1size": str "calc( min( var(--s2) + 2vw , var(--s4) ) )"
76− , fontSize: var "--h1size"
77− , letterSpacing: str "calc(var(--h1size) * -0.04)"
78− }
73+ nested
74+ $ css
75+ { "--h1size": str "calc( min( var(--s2) + 2vw , var(--s4) ) )"
76+ , fontSize: var "--h1size"
77+ , letterSpacing: str "calc(var(--h1size) * -0.04)"
78+ }
7979 , h2:
80− nested
81− $ css
82− { "--h2size": str "calc( min( var(--s1) + 2vw , var(--s3) ) )"
83− , fontSize: var "--h2size"
84− , letterSpacing: str "calc(var(--h2size) * -0.035)"
85− }
80+ nested
81+ $ css
82+ { "--h2size": str "calc( min( (var(--s1)*1.1) + 2vw , var(--s3) ) )"
83+ , fontSize: var "--h2size"
84+ , letterSpacing: str "calc(var(--h2size) * -0.035)"
85+ }
8686 , h3:
87− nested
88− $ css
89− { "--h3size": str "calc( min( var(--s0) + 2vw , var(--s2) ) )"
90− , fontSize: var "--h3size"
91− , letterSpacing: str "calc(var(--h3size) * -0.03)"
92− }
87+ nested
88+ $ css
89+ { "--h3size": str "calc( min( var(--s0) + 2vw , var(--s2) ) )"
90+ , fontSize: var "--h3size"
91+ , letterSpacing: str "calc(var(--h3size) * -0.03)"
92+ }
9393 , p:
94− nested
95− $ css
96− { "--psize": str "calc( min( var(--s-2) + 2.7vw , var(--s0)*1.1 ) )"
97− , fontSize: var "--psize"
98− , letterSpacing: str "calc(var(--psize) * -0.03)"
99− }
94+ nested
95+ $ css
96+ { "--psize": str "calc( min( (var(--s-1) * 1.7) + 0.7vw , var(--s0)*1.1 ) )"
97+ , fontSize: var "--psize"
98+ , letterSpacing: str "calc(var(--psize) * -0.03)"
99+ }
100100 , a:
101− nest
102− { color: str colour.text
103− , textDecorationColor: str colour.text
104− , "&:hover":
105− nest
106− { color: str colour.text
107− , textDecorationColor: str colour.highlight
108− }
109− , "&:visited":
110− nest
111− { color: str colour.text
112− , textDecorationColor: str colour.backgroundLayer1
113− }
114− }
101+ nest
102+ { color: str colour.text
103+ , textDecorationColor: str colour.text
104+ , "&:hover":
105+ nest
106+ { color: str colour.text
107+ , textDecorationColor: str colour.highlight
108+ }
109+ , "&:visited":
110+ nest
111+ { color: str colour.text
112+ , textDecorationColor: str colour.backgroundLayer1
113+ }
114+ }
115115 , "::selection":
116− nest
117− { color: str colour.highlightText
118− , background: str colour.highlight
119− }
116+ nest
117+ { color: str colour.highlightText
118+ , background: str colour.highlight
119+ }
120120 , "*, *:before, *:after":
121− nested
122− $ css
123− { boxSizing: str "inherit"
124− , "::selection":
125− nest
126− { color: str colour.highlightText
127− , background: str colour.highlight
128− }
129− , fontFeatureSettings:
130− str
131− $ intercalate ","
132− $ show
133− <$> [ "ss03" -- curved r
134− , "cv03" -- open six
135− , "cv04" -- open nine
136− -- , "cv05" -- lower case l with tail
137− , "cv07" -- German double-s
138− , "cv09" -- Flat top three
139− ]
140− }
121+ nested
122+ $ css
123+ { boxSizing: str "inherit"
124+ , "::selection":
125+ nest
126+ { color: str colour.highlightText
127+ , background: str colour.highlight
128+ }
129+ , fontFeatureSettings:
130+ str
131+ $ intercalate ","
132+ $ show
133+ <$> [ "ss03" -- curved r
134+ , "cv03" -- open six
135+ , "cv04" -- open nine
136+ -- , "cv05" -- lower case l with tail
137+ , "cv07" -- German double-s
138+ , "cv09" -- Flat top three
139+ ]
140+ }
141141 }
142142
143143withAlpha ∷ Number -> Color -> Color
@@ -148,74 +148,74 @@ withAlpha alpha c1 = Color.rgba' r g b alpha
148148defaultColours ∷ Colours
149149defaultColours =
150150 { light:
151− { background: lightBg
152− , backgroundLayer1: darken 0.20 >>> saturate 0.04 $ lightBg
153− , backgroundLayer2: darken 0.15 >>> saturate 0.07 $ lightBg
154− , backgroundLayer3: darken 0.10 >>> saturate 0.09 $ lightBg
155− , backgroundLayer4: darken 0.05 >>> saturate 0.12 $ lightBg
156− , backgroundLayer5: lightBg
157− , backgroundInverted: darken 0.85 lightBg
158− , textInverted: lightBg
159− , success
160− , successText
161− , invalid
162− , invalidText
163− , required
164− , interfaceBackground
165− , interfaceBackgroundDangerous
166− , interfaceDangerousText
167− , interfaceBackgroundDisabled: darken 0.03 lightBg
168− , interfaceTextDisabled: darken 0.30 lightBg
169− , interfaceBackgroundHighlight: lighten 0.05 lightBg
170− , highlightDisabled: (desaturate 0.80 >>> lighten 0.28) highlight
171− , interfaceBackgroundShadow: darken 0.04 lightBg
172− , inputBackground: lightBg
173− , inputBorder: darken 0.1 lightBg
174− , highlight
175− , highlightLighter: withAlpha 0.2 (Color.lighten 0.5 highlight)
176− , highlightDarker: withAlpha 0.15 (Color.darken 0.5 highlight)
177− , highlightRotatedForwards: highlight # rotateHue 30.0
178− , highlightRotatedBackwards: highlight # rotateHue (-30.0)
179− , highlightText
180− , text: textLightTheme
181− , placeholderText: lighten 0.4 darkBg
182− }
151+ { background: lightBg
152+ , backgroundLayer1: darken 0.12 >>> rotateHue (0.0) >>> saturate 0.01 $ lightBg
153+ , backgroundLayer2: darken 0.09 >>> rotateHue (0.0) >>> saturate 0.02 $ lightBg
154+ , backgroundLayer3: darken 0.06 >>> rotateHue (0.0) >>> saturate 0.03 $ lightBg
155+ , backgroundLayer4: darken 0.03 >>> rotateHue (0.0) >>> saturate 0.04 $ lightBg
156+ , backgroundLayer5: lightBg
157+ , backgroundInverted: darken 0.85 lightBg
158+ , textInverted: lightBg
159+ , success
160+ , successText
161+ , invalid
162+ , invalidText
163+ , required
164+ , interfaceBackground
165+ , interfaceBackgroundDangerous
166+ , interfaceDangerousText
167+ , interfaceBackgroundDisabled: darken 0.03 lightBg
168+ , interfaceTextDisabled: darken 0.30 lightBg
169+ , interfaceBackgroundHighlight: lighten 0.05 lightBg
170+ , highlightDisabled: (desaturate 0.80 >>> lighten 0.28) highlight
171+ , interfaceBackgroundShadow: darken 0.04 lightBg
172+ , inputBackground: lightBg
173+ , inputBorder: darken 0.1 lightBg
174+ , highlight
175+ , highlightLighter: withAlpha 0.2 (Color.lighten 0.5 highlight)
176+ , highlightDarker: withAlpha 0.15 (Color.darken 0.5 highlight)
177+ , highlightRotatedForwards: highlight # rotateHue 30.0
178+ , highlightRotatedBackwards: highlight # rotateHue (-30.0)
179+ , highlightText
180+ , text: textLightTheme
181+ , placeholderText: lighten 0.4 darkBg
182+ }
183183 , dark:
184− { background: darkBg
185− , backgroundLayer1: lighten 0.30 >>> saturate 0.07 $ darkBg
186− , backgroundLayer2: lighten 0.21 >>> saturate 0.08 $ darkBg
187− , backgroundLayer3: lighten 0.14 >>> saturate 0.12 $ darkBg
188− , backgroundLayer4: lighten 0.07 >>> saturate 0.18 $ darkBg
189− , backgroundLayer5: darkBg
190− , textInverted: darkBg
191− , backgroundInverted: lightBg
192− , interfaceBackground: interfaceBackgroundDark
193− , interfaceBackgroundDangerous: interfaceBackgroundDangerousDark
194− , interfaceDangerousText: interfaceDangerousTextDark
195− , interfaceBackgroundDisabled: darken 0.3 interfaceBackgroundDark
196− , interfaceTextDisabled: (desaturate 0.3 >>> lighten 0.25) interfaceBackgroundDark
197− , interfaceBackgroundHighlight: lighten 0.1 interfaceBackgroundDark
198− , interfaceBackgroundShadow: darken 0.1 interfaceBackgroundDark
199− , inputBackground: darkBg
200− , inputBorder: lighten 0.17 darkBg
201− , success: successDark
202− , successText
203− , required
204− , invalid
205− , invalidText
206− , highlight: highlightDark
207− , highlightDisabled: (desaturate 0.76 >>> darken 0.32) highlightDark
208− , highlightLighter: withAlpha 0.2 (Color.lighten 0.5 highlightDark)
209− , highlightDarker: withAlpha 0.4 (Color.darken 0.5 highlightDark)
210− , highlightRotatedForwards: highlightDark # rotateHue 30.0
211− , highlightRotatedBackwards: highlightDark # rotateHue (-30.0)
212− , highlightText
213− , text: lightBg
214− , placeholderText: darken 0.4 lightBg
215− }
184+ { background: darkBg
185+ , backgroundLayer5: lighten 0.30 >>> saturate 0.07 $ darkBg
186+ , backgroundLayer4: lighten 0.21 >>> saturate 0.08 $ darkBg
187+ , backgroundLayer3: lighten 0.14 >>> saturate 0.12 $ darkBg
188+ , backgroundLayer2: lighten 0.07 >>> saturate 0.18 $ darkBg
189+ , backgroundLayer1: darkBg
190+ , textInverted: darkBg
191+ , backgroundInverted: lightBg
192+ , interfaceBackground: interfaceBackgroundDark
193+ , interfaceBackgroundDangerous: interfaceBackgroundDangerousDark
194+ , interfaceDangerousText: interfaceDangerousTextDark
195+ , interfaceBackgroundDisabled: darken 0.3 interfaceBackgroundDark
196+ , interfaceTextDisabled: (desaturate 0.3 >>> lighten 0.25) interfaceBackgroundDark
197+ , interfaceBackgroundHighlight: lighten 0.1 interfaceBackgroundDark
198+ , interfaceBackgroundShadow: darken 0.1 interfaceBackgroundDark
199+ , inputBackground: darkBg
200+ , inputBorder: lighten 0.17 darkBg
201+ , success: successDark
202+ , successText
203+ , required
204+ , invalid
205+ , invalidText
206+ , highlight: highlightDark
207+ , highlightDisabled: (desaturate 0.76 >>> darken 0.32) highlightDark
208+ , highlightLighter: withAlpha 0.2 (Color.lighten 0.5 highlightDark)
209+ , highlightDarker: withAlpha 0.4 (Color.darken 0.5 highlightDark)
210+ , highlightRotatedForwards: highlightDark # rotateHue 30.0
211+ , highlightRotatedBackwards: highlightDark # rotateHue (-30.0)
212+ , highlightText
213+ , text: lightBg
214+ , placeholderText: darken 0.4 lightBg
215+ }
216216 }
217217 where
218− highlight = Color.hsl 270.0 0.90 0.62
218+ highlight = Color.hsl 320.0 0.62 0.49
219219
220220 highlightDark = Color.rgb 0x88 0x33 0xFF
221221
@@ -247,48 +247,48 @@ defaultColours =
247247
248248 textLightTheme = Color.rgb 16 16 32
249249
250− darkBg = Color.hsl 240.0 0.07 0.14
251−
252− lightBg = Color.hsl 240.0 0.05 0.97
253−
254−type FlatTheme a
255− = { background ∷ a
256− , backgroundLayer1 ∷ a
257− , backgroundLayer2 ∷ a
258− , backgroundLayer3 ∷ a
259− , backgroundLayer4 ∷ a
260− , backgroundLayer5 ∷ a
261− , backgroundInverted ∷ a
262− , interfaceBackground ∷ a
263− , interfaceBackgroundDangerous ∷ a
264− , interfaceDangerousText ∷ a
265− , interfaceBackgroundDisabled ∷ a
266− , interfaceTextDisabled ∷ a
267− , interfaceBackgroundHighlight ∷ a
268− , interfaceBackgroundShadow ∷ a
269− , inputBackground ∷ a
270− , inputBorder ∷ a
271− , highlight ∷ a
272− , highlightRotatedBackwards ∷ a
273− , highlightRotatedForwards ∷ a
274− , highlightDarker ∷ a
275− , highlightLighter ∷ a
276− , highlightDisabled ∷ a
277− , highlightText ∷ a
278− , success ∷ a
279− , successText ∷ a
280− , invalid ∷ a
281− , invalidText ∷ a
282− , required ∷ a
283− , text ∷ a
284− , textInverted ∷ a
285− , placeholderText ∷ a
286− }
250+ darkBg = Color.hsl 240.0 0.07 0.10
251+
252+ lightBg = Color.hsl 5.0 0.27 0.99
253+
254+type FlatTheme a =
255+ { background ∷ a
256+ , backgroundLayer1 ∷ a
257+ , backgroundLayer2 ∷ a
258+ , backgroundLayer3 ∷ a
259+ , backgroundLayer4 ∷ a
260+ , backgroundLayer5 ∷ a
261+ , backgroundInverted ∷ a
262+ , interfaceBackground ∷ a
263+ , interfaceBackgroundDangerous ∷ a
264+ , interfaceDangerousText ∷ a
265+ , interfaceBackgroundDisabled ∷ a
266+ , interfaceTextDisabled ∷ a
267+ , interfaceBackgroundHighlight ∷ a
268+ , interfaceBackgroundShadow ∷ a
269+ , inputBackground ∷ a
270+ , inputBorder ∷ a
271+ , highlight ∷ a
272+ , highlightRotatedBackwards ∷ a
273+ , highlightRotatedForwards ∷ a
274+ , highlightDarker ∷ a
275+ , highlightLighter ∷ a
276+ , highlightDisabled ∷ a
277+ , highlightText ∷ a
278+ , success ∷ a
279+ , successText ∷ a
280+ , invalid ∷ a
281+ , invalidText ∷ a
282+ , required ∷ a
283+ , text ∷ a
284+ , textInverted ∷ a
285+ , placeholderText ∷ a
286+ }
287287
288−type Colours
289− = { dark ∷ FlatTheme Color
290− , light ∷ FlatTheme Color
291− }
288+type Colours =
289+ { dark ∷ FlatTheme Color
290+ , light ∷ FlatTheme Color
291+ }
292292
293293data MakeCSSVarLabels
294294 = MakeCSSVarLabels