@@ -4,7 +4,7 @@ import type { ColorType } from '../types'
44export interface TabsListProps {
55 size? : ' 1' | ' 2'
66 color? : ColorType
7- variant? : ' outline' | ' surface' | ' soft'
7+ variant? : ' classic ' | ' outline' | ' surface' | ' soft'
88 highContrast? : boolean
99}
1010 </script >
@@ -40,39 +40,63 @@ const resetClass = buildPropsClass(props, ['variant', 'size', 'highContrast'])
4040 font-style : normal ;
4141 scrollbar-width : none ;
4242}
43+
4344.ui-TabList ::-webkit-scrollbar {
4445 display : none ;
4546}
4647
47- .ui-TabList :where(.r-variant-outline , .r-variant-soft ) {
48- display : flex ;
49- box-shadow : inset 0 -1px 0 0 var (--gray-a5 );
48+ .ui-TabList :where(.r-size-1 ) {
49+ font-size : var (--font-size-1 );
50+ line-height : var (--line-height-1 );
51+ letter-spacing : var (--letter-spacing-1 );
52+ --tab-height : var (--space-6 );
53+ --tab-padding-x : var (--space-1 );
54+ --tab-radius : max (var (--radius-2 ), var (--radius-full ));
55+ --tab-item-radius : var (--radius-1 );
56+ --tab-inner-padding-x : var (--space-1 );
57+ --tab-inner-height : var (--space-5 );
58+ }
59+ .ui-TabList :where(.r-size-2 ) {
60+ font-size : var (--font-size-2 );
61+ line-height : var (--line-height-2 );
62+ letter-spacing : var (--letter-spacing-2 );
63+ --tab-height : var (--space-7 );
64+ --tab-padding-x : var (--space-2 );
65+ --tab-radius : max (var (--radius-3 ), var (--radius-full ));
66+ --tab-item-radius : var (--radius-2 );
67+ --tab-inner-padding-x : var (--space-2 );
68+ --tab-inner-height : calc (var (--space-6 ) - var (--space-1 ));
5069}
5170
52- .ui-TabList :where(.r-variant-surface ) {
71+ .ui-TabsIndicator {
72+ position : absolute ;
73+ left : 0 ;
74+ transition-property : width, transform;
75+ transform : translateX (var (--reka-tabs-indicator-position ));
76+ width : var (--reka-tabs-indicator-size );
77+ }
78+
79+ /* * classic & surface */
80+ .ui-TabList :where(.r-variant-surface , .r-variant-classic ) {
5381 position : relative ;
5482 display : inline-flex ;
5583 align-items : center ;
5684 justify-content : center ;
5785 vertical-align : top ;
5886 flex-shrink : 0 ;
59- box-shadow : inset 0 0 0 1px var (--gray-a6 );
6087 border-radius : var (--tab-radius );
6188}
6289
63- .ui-TabsIndicator {
64- position : absolute ;
65- left : 0 ;
66- transition-property : width, transform;
67- transform : translateX (var (--reka-tabs-indicator-position ));
68- width : var (--reka-tabs-indicator-size );
90+ .ui-TabList :where(.r-variant-classic ) {
91+ background-color : var (--accent-a3 );
92+ padding-left : var (--tab-padding-x );
93+ padding-right : var (--tab-padding-x );
6994}
7095
71- .ui-TabList :where(.r-variant-outline ) :where(.ui-TabsIndicator ) {
72- bottom : 0 ;
73- height : 2px ;
74- background-color : var (--accent-indicator );
75- transition-duration : 300ms ;
96+ .ui-TabList :where(.r-variant-surface ) {
97+ --tab-item-radius : 0 ;
98+ --tab-inner-height : var (--tab-height );
99+ box-shadow : inset 0 0 0 1px var (--gray-a6 );
76100}
77101
78102.ui-TabList :where(.r-variant-surface ) :where(.ui-TabsIndicator ) {
@@ -82,52 +106,51 @@ const resetClass = buildPropsClass(props, ['variant', 'size', 'highContrast'])
82106 transition-duration : 100ms ;
83107}
84108
85- .ui-TabList :where(.r-variant-soft ) :where(.ui-TabsIndicator ) {
109+ .ui-TabList :where(.r-variant-classic ) :where(.ui-TabsIndicator ) {
86110 top : calc ((var (--tab-height ) - var (--tab-inner-height )) / 2 );
87111 height : var (--tab-inner-height );
88- background-color : var (--accent-a3 );
112+ background-color : var (--color-panel-solid );
113+ box-shadow :
114+ 0 0 0 0.5px var (--black-a1 ),
115+ 0 1px 1px 0 var (--gray-a2 ),
116+ 0 2px 1px -1px var (--black-a1 ),
117+ 0 1px 3px 0 var (--black-a1 );
89118 border-radius : var (--tab-item-radius );
90119 transition-duration : 100ms ;
91120}
92121
93- .ui-TabList :where(.r-size-1 ) {
94- font-size : var (--font-size-1 );
95- line-height : var (--line-height-1 );
96- letter-spacing : var (--letter-spacing-1 );
97- --tab-height : var (--space-6 );
98- --tab-padding-x : var (--space-1 );
99- --tab-radius : max (var (--radius-2 ), var (--radius-full ));
100- --tab-item-radius : var (--radius-1 );
101- --tab-inner-padding-x : var (--space-1 );
102- --tab-inner-height : var (--space-5 );
103- }
104- .ui-TabList :where(.r-size-2 ) {
105- font-size : var (--font-size-2 );
106- line-height : var (--line-height-2 );
107- letter-spacing : var (--letter-spacing-2 );
108- --tab-height : var (--space-7 );
109- --tab-padding-x : var (--space-2 );
110- --tab-radius : max (var (--radius-3 ), var (--radius-full ));
111- --tab-item-radius : var (--radius-2 );
112- --tab-inner-padding-x : var (--space-2 );
113- --tab-inner-height : calc (var (--space-6 ) - var (--space-1 ));
122+ .ui-TabList :where(.r-variant-surface.r-size-1 ),
123+ .ui-TabList :where(.r-variant-soft.r-size-1 ) {
124+ --tab-inner-padding-x : calc (var (--space-2 ) / 4 * 3 );
114125}
115126
116- .ui-TabList :where(.r-variant-surface ) {
117- --tab-item-radius : 0 ;
118- --tab-inner-height : var (--tab-height );
127+ /* * soft & outline */
128+ .ui-TabList :where(.r-variant-outline , .r-variant-soft ) {
129+ display : flex ;
130+ box-shadow : inset 0 -1px 0 0 var (--gray-a5 );
119131}
120132
121133.ui-TabList :where(.r-variant-soft ) {
122134 padding-left : var (--tab-padding-x );
123135 padding-right : var (--tab-padding-x );
124136}
125137
126- .ui-TabList :where(.r-variant-surface.r-size-1 ),
127- .ui-TabList :where(.r-variant-soft.r-size-1 ) {
128- --tab-inner-padding-x : calc (var (--space-2 ) / 4 * 3 );
138+ .ui-TabList :where(.r-variant-soft ) :where(.ui-TabsIndicator ) {
139+ top : calc ((var (--tab-height ) - var (--tab-inner-height )) / 2 );
140+ height : var (--tab-inner-height );
141+ background-color : var (--accent-a3 );
142+ border-radius : var (--tab-item-radius );
143+ transition-duration : 100ms ;
144+ }
145+
146+ .ui-TabList :where(.r-variant-outline ) :where(.ui-TabsIndicator ) {
147+ bottom : 0 ;
148+ height : 2px ;
149+ background-color : var (--accent-indicator );
150+ transition-duration : 300ms ;
129151}
130152
153+ /* * high contrast */
131154:where(.ui-TabList.r-variant-outline.r-high-contrast ) .ui-TabsIndicator {
132155 background-color : var (--accent-12 );
133156}
0 commit comments