1515dialog {
1616 --dialog-border : oklch (81.977% 0.14657 81.169 );
1717
18+ border : 2px solid var (--dialog-border );
19+ border-radius : 4px ;
20+ color : var (--text-color );
21+ font-size : var (--text-small );
22+ max-inline-size : min (80vw , 50ch );
23+ max-block-size : min (95dvb , 100% );
24+ margin : auto;
25+ opacity : var (--opacity , 0 );
26+ overflow : hidden;
27+ padding : calc (var (--gap ) * 2 );
28+ transition :
29+ opacity var (--transition-timing ) ease-in,
30+ overlay var (--transition-timing-slower ) linear,
31+ display var (--transition-timing-slower ) linear,
32+ transform var (--transition-timing ) linear;
33+ transition-behavior : allow-discrete;
34+ transform : translateY (var (--translate , 50px ));
35+
1836 & [open ] {
1937 --opacity : 1 ;
2038 --translate : 0 ;
@@ -29,6 +47,19 @@ dialog {
2947 }
3048 }
3149
50+ & ::backdrop {
51+ backdrop-filter : var (--filter , none);
52+ background : var (--backdrop , transparent);
53+ opacity : var (--backdrop-opacity , 0 );
54+ transition :
55+ background var (--transition-timing ) linear,
56+ opacity var (--transition-timing ) linear,
57+ display var (--transition-timing-slower ) ease-out,
58+ backdrop-filter var (--transition-timing ) linear,
59+ overlay var (--transition-timing-slower ) ease-out;
60+ transition-behavior : allow-discrete;
61+ }
62+
3263 & [open ]::backdrop {
3364 --backdrop-opacity : 1 ;
3465 --backdrop : linear-gradient (140deg ,
@@ -43,39 +74,9 @@ dialog {
4374 }
4475 }
4576
46- border : 2px solid var (--dialog-border );
47- border-radius : 4px ;
48- color : var (--text-color );
49- font-size : var (--text-small );
50- max-inline-size : min (80vw , 50ch );
51- max-block-size : min (95dvb , 100% );
52- margin : auto;
53- opacity : var (--opacity , 0 );
54- overflow : hidden;
55- padding : calc (var (--gap ) * 2 );
56- transition : opacity var (--transition-timing ) ease-in,
57- overlay var (--transition-timing-slower ) linear,
58- display var (--transition-timing-slower ) linear,
59- transform var (--transition-timing ) linear;
60- transition-behavior : allow-discrete;
61- transform : translateY (var (--translate , 50px ));
62-
6377 [data-heading ] {
6478 margin : 0 ;
6579 }
66-
67- & ::backdrop {
68- backdrop-filter : var (--filter , none);
69- background : var (--backdrop , transparent);
70- opacity : var (--backdrop-opacity , 0 );
71- transition :
72- background var (--transition-timing ) linear,
73- opacity var (--transition-timing ) linear,
74- display var (--transition-timing-slower ) ease-out,
75- backdrop-filter var (--transition-timing ) linear,
76- overlay var (--transition-timing-slower ) ease-out;
77- transition-behavior : allow-discrete;
78- }
7980}
8081
8182[data-field ] {
@@ -101,19 +102,7 @@ dialog {
101102 }
102103}
103104
104- # privacy-popover {
105- & : popover-open {
106- --popover-background : var (--color-highlight );
107- --popover-opacity : 1 ;
108- --popover-inset : 0 ;
109-
110- @starting-style {
111- --popover-background : transparent;
112- --popover-opacity : 0 ;
113- --popover-inset : -20px ;
114- }
115- }
116-
105+ [data-popover ] {
117106 background : var (--popover-background , transparent);
118107 border : 1px solid var (--dialog-border );
119108 color : var (--text-color );
@@ -124,11 +113,12 @@ dialog {
124113 min-inline-size : 25ch ;
125114 text-align : center;
126115 text-wrap : balance;
127- transition : background var (--transition-timing-fast ) linear,
128- opacity var (--transition-timing-fast ) linear,
129- inset-block-end var (--transition-timing-fast ) linear,
130- overlay var (--transition-timing-slower ) linear,
131- display var (--transition-timing-slower ) linear;
116+ transition :
117+ background var (--transition-timing-fast ) linear,
118+ opacity var (--transition-timing-fast ) linear,
119+ inset-block-end var (--transition-timing-fast ) linear,
120+ overlay var (--transition-timing-slower ) linear,
121+ display var (--transition-timing-slower ) linear;
132122 inset-block-end : var (--popover-inset , -20px );
133123 transition-behavior : allow-discrete;
134124
@@ -137,6 +127,18 @@ dialog {
137127 position-area : top center;
138128 margin : unset;
139129 }
130+
131+ & : popover-open {
132+ --popover-background : var (--color-highlight );
133+ --popover-opacity : 1 ;
134+ --popover-inset : 0 ;
135+
136+ @starting-style {
137+ --popover-background : transparent;
138+ --popover-opacity : 0 ;
139+ --popover-inset : -20px ;
140+ }
141+ }
140142}
141143
142144/* demo styles */
@@ -302,6 +304,7 @@ input[type="email"] {
302304
303305 [data-button ] {
304306 --btn-bg : var (--accent-color );
307+
305308 align-items : center;
306309 background : var (--btn-bg , Canvas);
307310 border : 1px solid var (--btn-border , transparent);
0 commit comments