diff options
Diffstat (limited to 'src/scopes')
-rw-r--r-- | src/scopes/_links.scss | 75 |
1 files changed, 59 insertions, 16 deletions
diff --git a/src/scopes/_links.scss b/src/scopes/_links.scss index 552b02a..790d5c6 100644 --- a/src/scopes/_links.scss +++ b/src/scopes/_links.scss | |||
@@ -1,6 +1,8 @@ | |||
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 | $static-themes: 'black' 'white' !default; | ||
5 | |||
4 | @include iro.props-namespace('links') { | 6 | @include iro.props-namespace('links') { |
5 | @include iro.props-store(( | 7 | @include iro.props-store(( |
6 | --dims: ( | 8 | --dims: ( |
@@ -18,23 +20,23 @@ | |||
18 | ), | 20 | ), |
19 | ), | 21 | ), |
20 | --colors: ( | 22 | --colors: ( |
21 | --underline: fn.global-color(--text-mute-more), | 23 | --underline: fn.global-color(--text-mute-more), |
22 | 24 | ||
23 | --idle: ( | 25 | --colored: ( |
24 | --text: fn.global-color(--accent --1100), | 26 | --text: fn.global-color(--accent --1100), |
25 | --underline: fn.global-color(--accent --600), | 27 | --underline: fn.global-color(--accent --600), |
26 | 28 | ||
27 | --hover: ( | 29 | --hover: ( |
28 | --text: fn.global-color(--accent --1300), | 30 | --text: fn.global-color(--accent --1300), |
29 | ), | 31 | ), |
30 | ), | 32 | |
31 | 33 | --visited: ( | |
32 | --visited: ( | 34 | --text: fn.global-color(--purple --1100), |
33 | --text: fn.global-color(--purple --1100), | 35 | --underline: fn.global-color(--purple --600), |
34 | --underline: fn.global-color(--purple --600), | 36 | |
35 | 37 | --hover: ( | |
36 | --hover: ( | 38 | --text: fn.global-color(--purple --1300), |
37 | --text: fn.global-color(--purple --1300), | 39 | ), |
38 | ), | 40 | ), |
39 | ), | 41 | ), |
40 | 42 | ||
@@ -46,6 +48,27 @@ | |||
46 | ), | 48 | ), |
47 | )); | 49 | )); |
48 | 50 | ||
51 | @each $theme in $static-themes { | ||
52 | @include iro.props-store(( | ||
53 | --colors: ( | ||
54 | --static-#{$theme}: ( | ||
55 | --text: fn.global-color(--#{$theme}-transparent --800), | ||
56 | --underline: fn.global-color(--#{$theme}-transparent --500), | ||
57 | |||
58 | --hover: ( | ||
59 | --text: fn.global-color(--#{$theme}-transparent --900), | ||
60 | ), | ||
61 | |||
62 | --key-focus: ( | ||
63 | --text: fn.global-color(--#{$theme}-transparent --900), | ||
64 | --border: fn.global-color(--#{$theme}-transparent --900), | ||
65 | --outline: fn.global-color(--#{$theme}-transparent --300), | ||
66 | ), | ||
67 | ) | ||
68 | ) | ||
69 | )); | ||
70 | } | ||
71 | |||
49 | @include iro.bem-scope(iro.props-namespace()) { | 72 | @include iro.bem-scope(iro.props-namespace()) { |
50 | :link, | 73 | :link, |
51 | :visited { | 74 | :visited { |
@@ -81,20 +104,40 @@ | |||
81 | 104 | ||
82 | @include iro.bem-modifier('colored') { | 105 | @include iro.bem-modifier('colored') { |
83 | :link { | 106 | :link { |
84 | color: fn.color(--idle --text); | 107 | color: fn.color(--colored --text); |
85 | text-decoration-color: fn.color(--idle --underline); | 108 | text-decoration-color: fn.color(--colored --underline); |
86 | 109 | ||
87 | &:hover { | 110 | &:hover { |
88 | color: fn.color(--idle --hover --text); | 111 | color: fn.color(--colored --hover --text); |
89 | } | 112 | } |
90 | } | 113 | } |
91 | 114 | ||
92 | :visited { | 115 | :visited { |
93 | color: fn.color(--visited --text); | 116 | color: fn.color(--colored --visited --text); |
94 | text-decoration-color: fn.color(--visited --underline); | 117 | text-decoration-color: fn.color(--colored --visited --underline); |
95 | 118 | ||
96 | &:hover { | 119 | &:hover { |
97 | color: fn.color(--visited --hover --text); | 120 | color: fn.color(--colored --visited --hover --text); |
121 | } | ||
122 | } | ||
123 | } | ||
124 | |||
125 | @each $theme in $static-themes { | ||
126 | @include iro.bem-modifier(static-#{$theme}) { | ||
127 | :link, | ||
128 | :visited { | ||
129 | color: fn.color(--static-#{$theme} --text); | ||
130 | text-decoration-color: fn.color(--static-#{$theme} --underline); | ||
131 | |||
132 | &:hover { | ||
133 | color: fn.color(--static-#{$theme} --hover --text); | ||
134 | } | ||
135 | |||
136 | &:focus-visible { | ||
137 | outline-color: fn.color(--static-#{$theme} --key-focus --border); | ||
138 | box-shadow: 0 0 0 calc(fn.dim(--key-focus --border) + fn.dim(--key-focus --outline)) fn.color(--static-#{$theme} --key-focus --outline); | ||
139 | color: fn.color(--static-#{$theme} --key-focus --text); | ||
140 | } | ||
98 | } | 141 | } |
99 | } | 142 | } |
100 | } | 143 | } |