diff options
| -rw-r--r-- | package.json | 2 | ||||
| -rw-r--r-- | src/_utils.scss | 10 | ||||
| -rw-r--r-- | src/_vars.scss | 116 | ||||
| -rw-r--r-- | tpl/index.pug | 6 | ||||
| -rw-r--r-- | tpl/objects/action-menu.pug | 2 | ||||
| -rw-r--r-- | tpl/objects/avatar.pug | 2 | ||||
| -rw-r--r-- | tpl/objects/backdrop.pug | 2 | ||||
| -rw-r--r-- | yarn.lock | 20 |
8 files changed, 87 insertions, 73 deletions
diff --git a/package.json b/package.json index de64393..fa4f082 100644 --- a/package.json +++ b/package.json | |||
| @@ -28,7 +28,7 @@ | |||
| 28 | "pug": "^3.0.0", | 28 | "pug": "^3.0.0", |
| 29 | "pug-cli": "^1.0.0-alpha6", | 29 | "pug-cli": "^1.0.0-alpha6", |
| 30 | "sass": "^1.28.0", | 30 | "sass": "^1.28.0", |
| 31 | "stylelint": "^14.3.0", | 31 | "stylelint": "^14.5.0", |
| 32 | "stylelint-config-sass-guidelines": "^9.0.1", | 32 | "stylelint-config-sass-guidelines": "^9.0.1", |
| 33 | "svg-sprite": "^1.5.4" | 33 | "svg-sprite": "^1.5.4" |
| 34 | } | 34 | } |
diff --git a/src/_utils.scss b/src/_utils.scss index 7ae2d6e..ae72f65 100644 --- a/src/_utils.scss +++ b/src/_utils.scss | |||
| @@ -1,11 +1,11 @@ | |||
| 1 | @use 'iro-sass/src/index' as iro; | 1 | @use 'iro-sass/src/index' as iro; |
| 2 | @use 'functions' as fn; | 2 | @use 'functions' as fn; |
| 3 | 3 | ||
| 4 | @include iro.bem-utility('db') { | 4 | @include iro.bem-utility('d-block') { |
| 5 | display: block; | 5 | display: block; |
| 6 | } | 6 | } |
| 7 | 7 | ||
| 8 | @include iro.bem-utility('dc') { | 8 | @include iro.bem-utility('d-contents') { |
| 9 | display: contents; | 9 | display: contents; |
| 10 | } | 10 | } |
| 11 | 11 | ||
| @@ -14,15 +14,15 @@ | |||
| 14 | text-overflow: ellipsis; | 14 | text-overflow: ellipsis; |
| 15 | } | 15 | } |
| 16 | 16 | ||
| 17 | @include iro.bem-utility('ps') { | 17 | @include iro.bem-utility('p-static') { |
| 18 | position: static; | 18 | position: static; |
| 19 | } | 19 | } |
| 20 | 20 | ||
| 21 | @include iro.bem-utility('pr') { | 21 | @include iro.bem-utility('p-relative') { |
| 22 | position: relative; | 22 | position: relative; |
| 23 | } | 23 | } |
| 24 | 24 | ||
| 25 | @include iro.bem-utility('mt0') { | 25 | @include iro.bem-utility('mt-0') { |
| 26 | margin-top: 0; | 26 | margin-top: 0; |
| 27 | } | 27 | } |
| 28 | 28 | ||
diff --git a/src/_vars.scss b/src/_vars.scss index 71f0b1f..cafdb3d 100644 --- a/src/_vars.scss +++ b/src/_vars.scss | |||
| @@ -1,3 +1,4 @@ | |||
| 1 | @use 'sass:math'; | ||
| 1 | @use 'iro-sass/src/index' as iro; | 2 | @use 'iro-sass/src/index' as iro; |
| 2 | @use 'include-media/dist/include-media' as media; | 3 | @use 'include-media/dist/include-media' as media; |
| 3 | @use '@oddbird/blend'; | 4 | @use '@oddbird/blend'; |
| @@ -17,6 +18,42 @@ media.$unit-intervals: ( | |||
| 17 | '': 0 | 18 | '': 0 |
| 18 | ); | 19 | ); |
| 19 | 20 | ||
| 21 | $grays: (); | ||
| 22 | |||
| 23 | @for $i from 0 through 100 { | ||
| 24 | $grays: append($grays, $i * 1%); | ||
| 25 | } | ||
| 26 | |||
| 27 | $grays-rev: iro.fn-list-reverse($grays); | ||
| 28 | |||
| 29 | @function find-gray($lightness, $contrast) { | ||
| 30 | $base: blend.lch($lightness 0 0); | ||
| 31 | $dir: if($contrast < 0, -1, 1) * if($lightness >= 50%, 1, -1); | ||
| 32 | $args: (); | ||
| 33 | |||
| 34 | @if $dir == 1 { | ||
| 35 | @each $gray in $grays-rev { | ||
| 36 | @if $gray < $lightness { | ||
| 37 | $args: append($args, blend.lch($gray 0 0)); | ||
| 38 | } | ||
| 39 | } | ||
| 40 | } @else { | ||
| 41 | @each $gray in $grays { | ||
| 42 | @if $gray > $lightness { | ||
| 43 | $args: append($args, blend.lch($gray 0 0)); | ||
| 44 | } | ||
| 45 | } | ||
| 46 | } | ||
| 47 | |||
| 48 | @if length($args) == 0 { | ||
| 49 | @return $base; | ||
| 50 | } | ||
| 51 | |||
| 52 | $args: append($args, math.abs($contrast)); | ||
| 53 | $result: blend.contrast($base, $args...); | ||
| 54 | @return hsl(fn.color(--gray-h), fn.color(--gray-s), lightness($result)); | ||
| 55 | } | ||
| 56 | |||
| 20 | // | 57 | // |
| 21 | 58 | ||
| 22 | @include iro.props-store(( | 59 | @include iro.props-store(( |
| @@ -95,9 +132,28 @@ media.$unit-intervals: ( | |||
| 95 | ); | 132 | ); |
| 96 | } | 133 | } |
| 97 | 134 | ||
| 135 | @function gray-palette($lightness) { | ||
| 136 | @return ( | ||
| 137 | --gray1: find-gray($lightness, -1.1), | ||
| 138 | --gray2: find-gray($lightness, -1.05), | ||
| 139 | --gray3: find-gray($lightness, 1), | ||
| 140 | --gray4: find-gray($lightness, 1.15), | ||
| 141 | --gray5: find-gray($lightness, 1.37), | ||
| 142 | --gray6: find-gray($lightness, 1.73), | ||
| 143 | --gray7: find-gray($lightness, 2.4), | ||
| 144 | --gray8: find-gray($lightness, 3.26), | ||
| 145 | --gray9: find-gray($lightness, 7.14), | ||
| 146 | --gray10: find-gray($lightness, 11), | ||
| 147 | --gray11: find-gray($lightness, 17.4), | ||
| 148 | ); | ||
| 149 | } | ||
| 150 | |||
| 98 | @include iro.fn-execute { | 151 | @include iro.fn-execute { |
| 99 | @include iro.props-store(( | 152 | @include iro.props-store(( |
| 100 | --colors: ( | 153 | --colors: ( |
| 154 | --gray-h: 220, | ||
| 155 | --gray-s: 5%, | ||
| 156 | |||
| 101 | --bg-hi2: fn.color(--gray1, null), // Lightest background | 157 | --bg-hi2: fn.color(--gray1, null), // Lightest background |
| 102 | --bg-hi: fn.color(--gray2, null), // Lighter background | 158 | --bg-hi: fn.color(--gray2, null), // Lighter background |
| 103 | --bg: fn.color(--gray3, null), // Background | 159 | --bg: fn.color(--gray3, null), // Background |
| @@ -139,35 +195,11 @@ media.$unit-intervals: ( | |||
| 139 | ), 'colors'); | 195 | ), 'colors'); |
| 140 | 196 | ||
| 141 | @include iro.props-store(( | 197 | @include iro.props-store(( |
| 142 | --colors: ( | 198 | --colors: gray-palette(94%) |
| 143 | --gray1: hsl(210, 0%, 100%), // 1.11 | ||
| 144 | --gray2: hsl(210, 0%, 98%), // 1.07 | ||
| 145 | --gray3: hsl(210, 0%, 95%), // 1 | ||
| 146 | --gray4: hsl(210, 0%, 90%), // 1.11 | ||
| 147 | --gray5: hsl(210, 0%, 87%), // 1.2 | ||
| 148 | --gray6: hsl(210, 0%, 78%), // 1.51 | ||
| 149 | --gray7: hsl(210, 0%, 69%), // 1.93 | ||
| 150 | --gray8: hsl(210, 0%, 55%), // 3 | ||
| 151 | --gray9: hsl(210, 0%, 38%), // 5.53 | ||
| 152 | --gray10: hsl(210, 0%, 19%), // 11.78 | ||
| 153 | --gray11: hsl(210, 0%, 0%), // 18.75 | ||
| 154 | ) | ||
| 155 | ), 'palette-light'); | 199 | ), 'palette-light'); |
| 156 | 200 | ||
| 157 | @include iro.props-store(( | 201 | @include iro.props-store(( |
| 158 | --colors: ( | 202 | --colors: gray-palette(100%) |
| 159 | --gray1: hsl(210, 0%, 100%), // 1 | ||
| 160 | --gray2: hsl(210, 0%, 100%), // 1 | ||
| 161 | --gray3: hsl(210, 0%, 100%), // 1 | ||
| 162 | --gray4: hsl(210, 0%, 95%), // 1.11 | ||
| 163 | --gray5: hsl(210, 0%, 92%), // 1.19 | ||
| 164 | --gray6: hsl(210, 0%, 82%), // 1.52 | ||
| 165 | --gray7: hsl(210, 0%, 73%), // 1.94 | ||
| 166 | --gray8: hsl(210, 0%, 58%), // 3.03 | ||
| 167 | --gray9: hsl(210, 0%, 41%), // 5.48 | ||
| 168 | --gray10: hsl(210, 0%, 22%), // 11.72 | ||
| 169 | --gray11: hsl(210, 0%, 0%), // 21 | ||
| 170 | ) | ||
| 171 | ), 'palette-light-raised'); | 203 | ), 'palette-light-raised'); |
| 172 | } | 204 | } |
| 173 | 205 | ||
| @@ -188,37 +220,13 @@ media.$unit-intervals: ( | |||
| 188 | ), | 220 | ), |
| 189 | ) | 221 | ) |
| 190 | ), 'colors-dark'); | 222 | ), 'colors-dark'); |
| 191 | 223 | ||
| 192 | @include iro.props-store(( | 224 | @include iro.props-store(( |
| 193 | --colors: ( | 225 | --colors: gray-palette(9%) |
| 194 | --gray1: hsl(210, 0%, 6%), // 1.1 | ||
| 195 | --gray2: hsl(210, 0%, 8%), // 1.05 | ||
| 196 | --gray3: hsl(210, 0%, 10%), // 1 | ||
| 197 | --gray4: hsl(210, 0%, 14%), // 1.12 | ||
| 198 | --gray5: hsl(210, 0%, 20%), // 1.37 | ||
| 199 | --gray6: hsl(210, 0%, 26%), // 1.73 | ||
| 200 | --gray7: hsl(210, 0%, 34%), // 2.4 | ||
| 201 | --gray8: hsl(210, 0%, 42%), // 3.26 | ||
| 202 | --gray9: hsl(210, 0%, 65%), // 7.14 | ||
| 203 | --gray10: hsl(210, 0%, 86%), // 12.57 | ||
| 204 | --gray11: hsl(210, 0%, 100%), // 17.4 | ||
| 205 | ) | ||
| 206 | ), 'palette-dark'); | 226 | ), 'palette-dark'); |
| 207 | 227 | ||
| 208 | @include iro.props-store(( | 228 | @include iro.props-store(( |
| 209 | --colors: ( | 229 | --colors: gray-palette(16%) |
| 210 | --gray1: hsl(210, 0%, 10%), // 1.12 | ||
| 211 | --gray2: hsl(210, 0%, 12%), // 1.06 | ||
| 212 | --gray3: hsl(210, 0%, 14%), // 1 | ||
| 213 | --gray4: hsl(210, 0%, 18%), // 1.14 | ||
| 214 | --gray5: hsl(210, 0%, 23%), // 1.38 | ||
| 215 | --gray6: hsl(210, 0%, 29%), // 1.75 | ||
| 216 | --gray7: hsl(210, 0%, 37%), // 2.39 | ||
| 217 | --gray8: hsl(210, 0%, 45%), // 3.27 | ||
| 218 | --gray9: hsl(210, 0%, 69%), // 7.15 | ||
| 219 | --gray10: hsl(210, 0%, 90%), // 12.43 | ||
| 220 | --gray11: hsl(210, 0%, 100%), // 15.52 | ||
| 221 | ) | ||
| 222 | ), 'palette-dark-raised'); | 230 | ), 'palette-dark-raised'); |
| 223 | } | 231 | } |
| 224 | 232 | ||
diff --git a/tpl/index.pug b/tpl/index.pug index 4e56564..d8984ce 100644 --- a/tpl/index.pug +++ b/tpl/index.pug | |||
| @@ -450,8 +450,8 @@ html | |||
| 450 | +action-menu-slot(class='l-card l-card--flush') | 450 | +action-menu-slot(class='l-card l-card--flush') |
| 451 | +avatar(block=true circle=true size='sm' src='avatar.png' class='l-card__block') | 451 | +avatar(block=true circle=true size='sm' src='avatar.png' class='l-card__block') |
| 452 | .l-card__block.l-card__block--main | 452 | .l-card__block.l-card__block--main |
| 453 | strong.u-db= 'Volpeon' | 453 | strong.u-d-block= 'Volpeon' |
| 454 | small.u-db= '@volpeon@mk.vulpes.one' | 454 | small.u-d-block= '@volpeon@mk.vulpes.one' |
| 455 | +action-menu-separator | 455 | +action-menu-separator |
| 456 | +action-menu-item(icon='user')= 'View profile' | 456 | +action-menu-item(icon='user')= 'View profile' |
| 457 | +action-menu-item(icon='red' iconIsStatus=true)= 'Mark as away' | 457 | +action-menu-item(icon='red' iconIsStatus=true)= 'Mark as away' |
| @@ -528,7 +528,7 @@ html | |||
| 528 | +box | 528 | +box |
| 529 | +backdrop | 529 | +backdrop |
| 530 | +dialog('Lorem ipsum') | 530 | +dialog('Lorem ipsum') |
| 531 | p.u-mt0= loremIpsum | 531 | p.u-mt-0= loremIpsum |
| 532 | p= loremIpsum | 532 | p= loremIpsum |
| 533 | p= loremIpsum | 533 | p= loremIpsum |
| 534 | p= loremIpsum | 534 | p= loremIpsum |
diff --git a/tpl/objects/action-menu.pug b/tpl/objects/action-menu.pug index e8cecb2..751e29d 100644 --- a/tpl/objects/action-menu.pug +++ b/tpl/objects/action-menu.pug | |||
| @@ -2,7 +2,7 @@ include icon.pug | |||
| 2 | include status-indicator.pug | 2 | include status-indicator.pug |
| 3 | 3 | ||
| 4 | mixin action-menu | 4 | mixin action-menu |
| 5 | .o-action-menu.u-ps.t-raised | 5 | .o-action-menu.u-p-static.t-raised |
| 6 | block | 6 | block |
| 7 | 7 | ||
| 8 | mixin action-menu-item | 8 | mixin action-menu-item |
diff --git a/tpl/objects/avatar.pug b/tpl/objects/avatar.pug index 16de7c5..9e08a16 100644 --- a/tpl/objects/avatar.pug +++ b/tpl/objects/avatar.pug | |||
| @@ -5,7 +5,7 @@ mixin avatar | |||
| 5 | let classes = { | 5 | let classes = { |
| 6 | 'o-avatar': true, | 6 | 'o-avatar': true, |
| 7 | 'o-avatar--circle': attributes.circle, | 7 | 'o-avatar--circle': attributes.circle, |
| 8 | 'u-db': attributes.block | 8 | 'u-d-block': attributes.block |
| 9 | } | 9 | } |
| 10 | if (attributes.class) { | 10 | if (attributes.class) { |
| 11 | classes[attributes.class] = true; | 11 | classes[attributes.class] = true; |
diff --git a/tpl/objects/backdrop.pug b/tpl/objects/backdrop.pug index 3e3eb7f..5d0c9e8 100644 --- a/tpl/objects/backdrop.pug +++ b/tpl/objects/backdrop.pug | |||
| @@ -1,3 +1,3 @@ | |||
| 1 | mixin backdrop | 1 | mixin backdrop |
| 2 | .o-backdrop.u-ps(style={ width: '100%', 'min-height': '5em', 'max-height': '40em' }) | 2 | .o-backdrop.u-p-static(style={ width: '100%', 'min-height': '5em', 'max-height': '40em' }) |
| 3 | block | 3 | block |
| @@ -623,6 +623,11 @@ cosmiconfig@^7.0.1: | |||
| 623 | path-type "^4.0.0" | 623 | path-type "^4.0.0" |
| 624 | yaml "^1.10.0" | 624 | yaml "^1.10.0" |
| 625 | 625 | ||
| 626 | css-functions-list@^3.0.0: | ||
| 627 | version "3.0.0" | ||
| 628 | resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.0.0.tgz#faa770a0666aea11435efc0889935336cea564be" | ||
| 629 | integrity sha512-rfwhBOvXVFcKrSwmLxD8JQyuEEy/3g3Y9FMI2l6iV558Coeo1ucXypXb4rwrVpk5Osh5ViXp2DTgafw8WxglhQ== | ||
| 630 | |||
| 626 | css-select-base-adapter@^0.1.1: | 631 | css-select-base-adapter@^0.1.1: |
| 627 | version "0.1.1" | 632 | version "0.1.1" |
| 628 | resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" | 633 | resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" |
| @@ -1265,7 +1270,7 @@ internal-slot@^1.0.3: | |||
| 1265 | 1270 | ||
| 1266 | "iro-sass@git+https://git.vulpes.one/git/iro-sass.git": | 1271 | "iro-sass@git+https://git.vulpes.one/git/iro-sass.git": |
| 1267 | version "1.0.2" | 1272 | version "1.0.2" |
| 1268 | resolved "git+https://git.vulpes.one/git/iro-sass.git#4c9a427806b47b916849dbc98330fdbb469b659b" | 1273 | resolved "git+https://git.vulpes.one/git/iro-sass.git#ac1f3da1da7759d8537b60a7f6b5ceb1a30a361e" |
| 1269 | 1274 | ||
| 1270 | is-arrayish@^0.2.1: | 1275 | is-arrayish@^0.2.1: |
| 1271 | version "0.2.1" | 1276 | version "0.2.1" |
| @@ -1980,7 +1985,7 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: | |||
| 1980 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" | 1985 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" |
| 1981 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== | 1986 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== |
| 1982 | 1987 | ||
| 1983 | postcss@^8.3.11, postcss@^8.4.5: | 1988 | postcss@^8.3.11, postcss@^8.4.6: |
| 1984 | version "8.4.6" | 1989 | version "8.4.6" |
| 1985 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.6.tgz#c5ff3c3c457a23864f32cb45ac9b741498a09ae1" | 1990 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.6.tgz#c5ff3c3c457a23864f32cb45ac9b741498a09ae1" |
| 1986 | integrity sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA== | 1991 | integrity sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA== |
| @@ -2688,14 +2693,15 @@ stylelint-scss@^4.0.0: | |||
| 2688 | postcss-selector-parser "^6.0.6" | 2693 | postcss-selector-parser "^6.0.6" |
| 2689 | postcss-value-parser "^4.1.0" | 2694 | postcss-value-parser "^4.1.0" |
| 2690 | 2695 | ||
| 2691 | stylelint@^14.3.0: | 2696 | stylelint@^14.5.0: |
| 2692 | version "14.3.0" | 2697 | version "14.5.0" |
| 2693 | resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.3.0.tgz#26b62730da7b3dc320021fc469d80048d7b77ebe" | 2698 | resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.5.0.tgz#d94252027164bc918303a6b782652931421d8871" |
| 2694 | integrity sha512-PZXSwtJe4f4qBPWBwAbHL0M0Qjrv8iHN+cLpUNsffaVMS3YzpDDRI73+2lsqLAYfQEzxRwpll6BDKImREbpHWA== | 2699 | integrity sha512-4dvQjrhAz2njLoE1OvUEZpryNWcmx2w5Lq5jlibxFv6b5W6O8/vob12M2ZzhX3Ndzs5f67F+BEYmhnQXOwfVYQ== |
| 2695 | dependencies: | 2700 | dependencies: |
| 2696 | balanced-match "^2.0.0" | 2701 | balanced-match "^2.0.0" |
| 2697 | colord "^2.9.2" | 2702 | colord "^2.9.2" |
| 2698 | cosmiconfig "^7.0.1" | 2703 | cosmiconfig "^7.0.1" |
| 2704 | css-functions-list "^3.0.0" | ||
| 2699 | debug "^4.3.3" | 2705 | debug "^4.3.3" |
| 2700 | execall "^2.0.0" | 2706 | execall "^2.0.0" |
| 2701 | fast-glob "^3.2.11" | 2707 | fast-glob "^3.2.11" |
| @@ -2717,7 +2723,7 @@ stylelint@^14.3.0: | |||
| 2717 | normalize-path "^3.0.0" | 2723 | normalize-path "^3.0.0" |
| 2718 | normalize-selector "^0.2.0" | 2724 | normalize-selector "^0.2.0" |
| 2719 | picocolors "^1.0.0" | 2725 | picocolors "^1.0.0" |
| 2720 | postcss "^8.4.5" | 2726 | postcss "^8.4.6" |
| 2721 | postcss-media-query-parser "^0.2.3" | 2727 | postcss-media-query-parser "^0.2.3" |
| 2722 | postcss-resolve-nested-selector "^0.1.1" | 2728 | postcss-resolve-nested-selector "^0.1.1" |
| 2723 | postcss-safe-parser "^6.0.0" | 2729 | postcss-safe-parser "^6.0.0" |
