2525* : focus-visible {
2626 outline-style : solid;
2727 outline-width : 2px ;
28+ outline-color : var (--outline );
2829 border-radius : 3px ;
2930}
3031
@@ -35,12 +36,6 @@ html, body {
3536 -moz-osx-font-smoothing : grayscale;
3637}
3738
38- select {
39- -webkit-appearance : none;
40- appearance : none;
41- outline-offset : 2px ;
42- }
43-
4439input : focus-visible {
4540 border-radius : 6px ;
4641}
@@ -49,6 +44,99 @@ input:focus-visible {
4944 min-height : 100vh ;
5045}
5146
47+ /* SELECT */
48+
49+ select {
50+ display : flex;
51+ min-width : 140px ;
52+ height : 24px ;
53+ align-items : center;
54+ cursor : pointer;
55+
56+ @supports (font : -apple-system-body) {
57+ appearance : none;
58+ min-width : 136px ;
59+ padding-left : 4px ;
60+ background-image : url ("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='%23fff'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19.5 8.25-7.5 7.5-7.5-7.5' /%3E%3C/svg%3E%0A" );
61+ background-repeat : no-repeat;
62+ background-size : 16px 16px ;
63+ background-position : 95% 4px ;
64+ }
65+
66+ @supports (appearance : base-select) {
67+ appearance : base-select;
68+ padding-inline : 4px ;
69+ background-image : none;
70+ color : # fff ;
71+
72+ & ::picker-icon {
73+ content : "" ;
74+ width : 16px ;
75+ height : 16px ;
76+ margin-right : 2px ;
77+ background-image : url ("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='%23fff'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19.5 8.25-7.5 7.5-7.5-7.5' /%3E%3C/svg%3E%0A" );
78+ transition : rotate 0.2s ease-out;
79+ }
80+
81+ & : open ::picker-icon {
82+ rotate : 180deg ;
83+ background-image : url ("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='%2361DAFB'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19.5 8.25-7.5 7.5-7.5-7.5' /%3E%3C/svg%3E%0A" );
84+ }
85+
86+ & ::picker (select ) {
87+ appearance : base-select;
88+ padding : 2px ;
89+ margin-top : 6px ;
90+ border : 2px solid var (--select-border );
91+ background : var (--select-background );
92+ border-radius : 6px ;
93+ font-weight : 400 ;
94+ opacity : 0 ;
95+ overflow : clip;
96+ transition : opacity 0.5s ease-out;
97+ box-shadow : hsl (206 22% 7% / 60% ) 0 10px 32px -8px , hsl (206 22% 7% / 40% ) 0 10px 18px -12px ;
98+ }
99+
100+ & : open ::picker (select ) {
101+ opacity : 1 ;
102+ overflow : hidden;
103+ display : flex;
104+ flex-direction : column;
105+ gap : 2px ;
106+
107+ @starting-style {
108+ opacity : 0 ;
109+ }
110+ }
111+
112+ option {
113+ display : flex;
114+ align-items : center;
115+ padding : 2px 8px ;
116+ cursor : pointer;
117+ border-radius : 3px ;
118+ transition : background 0.2s ease-out;
119+ color : # fff !important ;
120+
121+ & : where (: hover , : focus , : active ) {
122+ background : color-mix (in srgb, var (--select-border ) 60% , transparent);
123+ }
124+
125+ & : checked {
126+ background : var (--active );
127+ }
128+
129+ & : checked : hover {
130+ background : color-mix (in srgb, var (--active ) 60% , transparent);
131+ }
132+
133+ & ::checkmark {
134+ display : none;
135+ }
136+ }
137+ }
138+ }
139+
52140/* TOOLTIP */
53141
54142.TooltipContent {
@@ -57,12 +145,18 @@ input:focus-visible {
57145 font-size : 13px ;
58146 line-height : 1.5 ;
59147 color : # fff ;
148+ background : # 000 ;
149+ border : 1px solid var (--tooltip-border );
60150 box-shadow : hsl (206 22% 7% / 40% ) 0 10px 32px -8px , hsl (206 22% 7% / 25% ) 0 10px 18px -12px ;
61151 user-select : none;
62152 animation-duration : 400ms ;
63153 animation-timing-function : cubic-bezier (0.16 , 1 , 0.3 , 1 );
64154 will-change : transform, opacity;
65155 max-width : 220px ;
156+
157+ svg {
158+ stroke : var (--tooltip-border );
159+ }
66160}
67161
68162.TooltipContent [data-state = 'delayed-open' ][data-side = 'top' ] {
0 commit comments