Skip to content

Commit 93dcd00

Browse files
Fix accessibility issues with dark theme by replacing hardcoded colors with design tokens
Co-authored-by: francinelucca <[email protected]>
1 parent fe53306 commit 93dcd00

File tree

2 files changed

+70
-45
lines changed

2 files changed

+70
-45
lines changed

packages/react/src/Portal/Portal.features.stories.tsx

Lines changed: 8 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -101,84 +101,47 @@ export const WithPortalContext = () => {
101101
<p>This story demonstrates how to use PortalContext to control where Portal content is rendered.</p>
102102

103103
{/* Default Portal */}
104-
<div
105-
className={clsx(classes.PortalContainer, classes.InnerContainer)}
106-
style={{backgroundColor: '#f0f8ff', margin: '10px', padding: '10px'}}
107-
>
104+
<div className={clsx(classes.PortalContainer, classes.DefaultSection)}>
108105
<strong>Default Portal (no context):</strong>
109106
{mounted ? (
110107
<Portal>
111-
<div style={{backgroundColor: '#e6f3ff', padding: '8px', border: '1px solid #0366d6'}}>
112-
Content in default portal
113-
</div>
108+
<div className={classes.DefaultPortalContent}>Content in default portal</div>
114109
</Portal>
115110
) : null}
116111
</div>
117112

118113
{/* Portal with Context */}
119-
<div
120-
className={clsx(classes.PortalContainer, classes.InnerContainer)}
121-
style={{backgroundColor: '#fff5f5', margin: '10px', padding: '10px'}}
122-
>
114+
<div className={clsx(classes.PortalContainer, classes.ContextSection)}>
123115
<strong>Portal with PortalContext:</strong>
124116
<PortalContext.Provider value={{portalContainerName: 'custom-portal'}}>
125117
{mounted ? (
126118
<Portal>
127-
<div style={{backgroundColor: '#ffe6e6', padding: '8px', border: '1px solid #d73a49'}}>
128-
Content in custom portal (via PortalContext)
129-
</div>
119+
<div className={classes.ContextPortalContent}>Content in custom portal (via PortalContext)</div>
130120
</Portal>
131121
) : null}
132122
</PortalContext.Provider>
133123
</div>
134124

135125
{/* Override context with containerName prop */}
136-
<div
137-
className={clsx(classes.PortalContainer, classes.InnerContainer)}
138-
style={{backgroundColor: '#f0fff4', margin: '10px', padding: '10px'}}
139-
>
126+
<div className={clsx(classes.PortalContainer, classes.OverrideSection)}>
140127
<strong>Context + containerName prop override:</strong>
141128
<PortalContext.Provider value={{portalContainerName: 'custom-portal'}}>
142129
{mounted ? (
143130
<Portal containerName="override-portal">
144-
<div style={{backgroundColor: '#e6ffe6', padding: '8px', border: '1px solid #28a745'}}>
145-
Content overriding context with containerName prop
146-
</div>
131+
<div className={classes.OverridePortalContent}>Content overriding context with containerName prop</div>
147132
</Portal>
148133
) : null}
149134
</PortalContext.Provider>
150135
</div>
151136
</div>
152137

153138
{/* Custom portal containers */}
154-
<div
155-
style={{
156-
position: 'fixed',
157-
bottom: '10px',
158-
left: '10px',
159-
backgroundColor: '#fffbf0',
160-
padding: '10px',
161-
border: '2px solid #f66a0a',
162-
borderRadius: '4px',
163-
maxWidth: '200px',
164-
}}
165-
>
139+
<div className={classes.CustomPortalContainer}>
166140
<strong>Custom Portal Container:</strong>
167141
<div ref={customContainerRef} />
168142
</div>
169143

170-
<div
171-
style={{
172-
position: 'fixed',
173-
bottom: '10px',
174-
right: '10px',
175-
backgroundColor: '#f0fff0',
176-
padding: '10px',
177-
border: '2px solid #28a745',
178-
borderRadius: '4px',
179-
maxWidth: '200px',
180-
}}
181-
>
144+
<div className={classes.OverridePortalContainer}>
182145
<strong>Override Portal Container:</strong>
183146
<div ref={overrideContainerRef} />
184147
</div>

packages/react/src/Portal/Portal.stories.module.css

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,65 @@
99
.InnerContainer {
1010
background-color: var(--bgColor-success-muted);
1111
}
12+
13+
/* Portal Context Story Styles */
14+
.DefaultSection {
15+
background-color: var(--bgColor-accent-muted);
16+
margin: var(--base-size-8);
17+
padding: var(--base-size-8);
18+
}
19+
20+
.ContextSection {
21+
background-color: var(--bgColor-attention-muted);
22+
margin: var(--base-size-8);
23+
padding: var(--base-size-8);
24+
}
25+
26+
.OverrideSection {
27+
background-color: var(--bgColor-success-muted);
28+
margin: var(--base-size-8);
29+
padding: var(--base-size-8);
30+
}
31+
32+
.DefaultPortalContent {
33+
background-color: var(--bgColor-accent-emphasis);
34+
padding: var(--base-size-4);
35+
border: var(--borderWidth-thin) solid var(--borderColor-accent-emphasis);
36+
color: var(--fgColor-onEmphasis);
37+
}
38+
39+
.ContextPortalContent {
40+
background-color: var(--bgColor-attention-emphasis);
41+
padding: var(--base-size-4);
42+
border: var(--borderWidth-thin) solid var(--borderColor-attention-emphasis);
43+
color: var(--fgColor-onEmphasis);
44+
}
45+
46+
.OverridePortalContent {
47+
background-color: var(--bgColor-success-emphasis);
48+
padding: var(--base-size-4);
49+
border: var(--borderWidth-thin) solid var(--borderColor-success-emphasis);
50+
color: var(--fgColor-onEmphasis);
51+
}
52+
53+
.CustomPortalContainer {
54+
position: fixed;
55+
bottom: var(--base-size-8);
56+
left: var(--base-size-8);
57+
background-color: var(--bgColor-neutral-muted);
58+
padding: var(--base-size-8);
59+
border: var(--borderWidth-thick) solid var(--borderColor-attention-emphasis);
60+
border-radius: var(--borderRadius-medium);
61+
max-width: 200px;
62+
}
63+
64+
.OverridePortalContainer {
65+
position: fixed;
66+
bottom: var(--base-size-8);
67+
right: var(--base-size-8);
68+
background-color: var(--bgColor-neutral-muted);
69+
padding: var(--base-size-8);
70+
border: var(--borderWidth-thick) solid var(--borderColor-success-emphasis);
71+
border-radius: var(--borderRadius-medium);
72+
max-width: 200px;
73+
}

0 commit comments

Comments
 (0)