summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/_iro-design.scss1
-rw-r--r--src/_layers.scss3
-rw-r--r--src/objects/_card.scss2
-rw-r--r--src/objects/_tabbar.scss63
4 files changed, 41 insertions, 28 deletions
diff --git a/src/_iro-design.scss b/src/_iro-design.scss
index 2010a2d..04857e3 100644
--- a/src/_iro-design.scss
+++ b/src/_iro-design.scss
@@ -23,6 +23,7 @@ $breakpoints: (
23@forward 'config' as config--*; 23@forward 'config' as config--*;
24@forward 'props' as props--*; 24@forward 'props' as props--*;
25@forward 'core' as core--*; 25@forward 'core' as core--*;
26@forward 'layers' as layers--*;
26 27
27@forward 'layouts/button-group' as l-button-group--*; 28@forward 'layouts/button-group' as l-button-group--*;
28@forward 'layouts/card-list' as l-card-list--*; 29@forward 'layouts/card-list' as l-card-list--*;
diff --git a/src/_layers.scss b/src/_layers.scss
new file mode 100644
index 0000000..cc3bb50
--- /dev/null
+++ b/src/_layers.scss
@@ -0,0 +1,3 @@
1@mixin styles {
2 @layer scope, theme, object, layout, component, utility;
3}
diff --git a/src/objects/_card.scss b/src/objects/_card.scss
index 6628eab..ff95526 100644
--- a/src/objects/_card.scss
+++ b/src/objects/_card.scss
@@ -14,7 +14,7 @@
14 position: relative; 14 position: relative;
15 display: flex; 15 display: flex;
16 flex-direction: column; 16 flex-direction: column;
17 margin-inline: calc(-1 * props.get(vars.$key-focus--border-width)); 17 margin: calc(-1 * props.get(vars.$key-focus--border-width));
18 background-color: props.get(vars.$bg-color); 18 background-color: props.get(vars.$bg-color);
19 background-clip: content-box; 19 background-clip: content-box;
20 border: props.get(vars.$key-focus--border-offset) solid transparent; 20 border: props.get(vars.$key-focus--border-offset) solid transparent;
diff --git a/src/objects/_tabbar.scss b/src/objects/_tabbar.scss
index 8518525..aaa6f07 100644
--- a/src/objects/_tabbar.scss
+++ b/src/objects/_tabbar.scss
@@ -12,28 +12,26 @@
12 @include materialize-at-root(meta.module-variables('vars')); 12 @include materialize-at-root(meta.module-variables('vars'));
13 13
14 @include bem.object('tabbar') { 14 @include bem.object('tabbar') {
15 position: relative;
16 display: flex;
17 gap: props.get(vars.$spacing);
18 min-inline-size: 0; 15 min-inline-size: 0;
19 block-size: props.get(vars.$block-size); 16 block-size: props.get(vars.$block-size);
20 margin-inline: calc(-.5 * props.get(vars.$spacing));
21 overflow-inline: auto;
22 17
23 &::after { 18 &::after {
24 display: block; 19 display: block;
25 flex: 1 1 auto;
26 block-size: props.get(vars.$indicator--width); 20 block-size: props.get(vars.$indicator--width);
27 margin-block-start: auto; 21 margin-block-start: calc(-1 * props.get(vars.$indicator--width));
28 margin-inline-end: calc(.5 * props.get(vars.$spacing));
29 content: ''; 22 content: '';
30 background-color: props.get(vars.$railing--bg-color); 23 background-color: props.get(vars.$railing--bg-color);
31 } 24 }
32 25
26 @include bem.elem('tabs') {
27 display: flex;
28 block-size: 100%;
29 margin-inline: calc(-.5 * props.get(vars.$spacing));
30 overflow-inline: auto;
31 }
32
33 @include bem.modifier('quiet') { 33 @include bem.modifier('quiet') {
34 &::after { 34 box-shadow: none;
35 display: none;
36 }
37 } 35 }
38 36
39 @include bem.modifier('adapt') { 37 @include bem.modifier('adapt') {
@@ -41,14 +39,12 @@
41 } 39 }
42 40
43 @include bem.elem('tab') { 41 @include bem.elem('tab') {
44 position: relative; 42 position: relative;
45 display: flex; 43 display: flex;
46 align-items: center; 44 align-items: center;
47 padding-inline: calc(.5 * props.get(vars.$spacing)); 45 padding-inline: calc(.5 * props.get(vars.$spacing));
48 color: props.get(vars.$tab--text-color); 46 color: props.get(vars.$tab--text-color);
49 white-space: nowrap; 47 white-space: nowrap;
50 border-block: props.get(vars.$indicator--width) solid transparent;
51 border-block-end-color: props.get(vars.$railing--bg-color);
52 48
53 &::before { 49 &::before {
54 position: absolute; 50 position: absolute;
@@ -61,6 +57,17 @@
61 transform: translateY(-50%); 57 transform: translateY(-50%);
62 } 58 }
63 59
60 &::after {
61 position: absolute;
62 inset-block-end: 0;
63 inset-inline: calc(.5 * props.get(vars.$spacing));
64 z-index: 10;
65 display: none;
66 block-size: props.get(vars.$indicator--width);
67 content: '';
68 background-color: props.get(vars.$tab--selected--text-color);
69 }
70
64 &:link, 71 &:link,
65 &:visited { 72 &:visited {
66 &:hover, 73 &:hover,
@@ -82,20 +89,22 @@
82 } 89 }
83 90
84 @include bem.is('selected') { 91 @include bem.is('selected') {
85 color: props.get(vars.$tab--selected--text-color); 92 color: props.get(vars.$tab--selected--text-color);
86 border-block-end-color: props.get(vars.$tab--selected--text-color); 93
94 &::after {
95 display: block;
96 }
87 } 97 }
88 } 98 }
89 99
90 @include bem.elem('caret') {
91 display: none;
92 }
93
94 @include bem.modifier('accent') { 100 @include bem.modifier('accent') {
95 @include bem.elem('tab') { 101 @include bem.elem('tab') {
102 &::after {
103 background-color: props.get(vars.$tab--accent--text-color);
104 }
105
96 @include bem.is('selected') { 106 @include bem.is('selected') {
97 color: props.get(vars.$tab--accent--text-color); 107 color: props.get(vars.$tab--accent--text-color);
98 border-block-end-color: props.get(vars.$tab--accent--text-color);
99 } 108 }
100 } 109 }
101 } 110 }