@@ -138,13 +138,11 @@ async function downloadCustomPng() {
138138 </div >
139139
140140 <!-- Controls -->
141- <div
142- class =" border-t border-border p-4 sm:p-6 flex flex-col sm:flex-row sm:items-center gap-4"
143- >
144- <!-- Accent color picker -->
145- <fieldset class =" flex items-center gap-3 flex-1 border-none p-0 m-0" >
141+ <div class =" border-t border-border p-4 sm:p-6 flex flex-col gap-4" >
142+ <!-- Row 1: Accent color picker -->
143+ <fieldset class =" flex items-center gap-3 border-none p-0 m-0" >
146144 <legend class =" sr-only" >{{ $t('brand.customize.accent_label') }}</legend >
147- <span class =" text-xs font-mono text-fg-muted shrink-0" >{{
145+ <span class =" text-sm font-mono text-fg-muted shrink-0" >{{
148146 $t('brand.customize.accent_label')
149147 }}</span >
150148 <div class =" flex items-center gap-1.5" role =" radiogroup" >
@@ -168,71 +166,72 @@ async function downloadCustomPng() {
168166 </div >
169167 </fieldset >
170168
171- <!-- Background toggle -->
172- <div class =" flex items-center gap-3" >
173- <span class =" text-xs font-mono text-fg-muted" >{{ $t('brand.customize.bg_label') }}</span >
174- <div
175- class =" flex items-center border border-border rounded-md overflow-hidden"
176- role =" radiogroup"
177- >
169+ <!-- Row 2: Background toggle + Download buttons -->
170+ <div class =" flex items-center gap-4 flex-wrap" >
171+ <div class =" flex items-center gap-3" >
172+ <span class =" text-sm font-mono text-fg-muted" >{{ $t('brand.customize.bg_label') }}</span >
173+ <div
174+ class =" flex items-center border border-border rounded-md overflow-hidden"
175+ role =" radiogroup"
176+ >
177+ <ButtonBase
178+ size =" sm"
179+ role =" radio"
180+ :aria-checked =" customBgDark"
181+ :aria-label =" $t('brand.logos.on_dark')"
182+ class =" !border-none !rounded-none motion-reduce:transition-none"
183+ :class ="
184+ customBgDark ? 'bg-bg-muted text-fg' : 'bg-transparent text-fg-muted hover:text-fg'
185+ "
186+ @click =" customBgDark = true"
187+ >
188+ {{ $t('brand.logos.on_dark') }}
189+ </ButtonBase >
190+ <ButtonBase
191+ size =" sm"
192+ role =" radio"
193+ :aria-checked =" !customBgDark"
194+ :aria-label =" $t('brand.logos.on_light')"
195+ class =" !border-none !rounded-none border-is border-is-border motion-reduce:transition-none"
196+ :class ="
197+ !customBgDark ? 'bg-bg-muted text-fg' : 'bg-transparent text-fg-muted hover:text-fg'
198+ "
199+ @click =" customBgDark = false"
200+ >
201+ {{ $t('brand.logos.on_light') }}
202+ </ButtonBase >
203+ </div >
204+ </div >
205+
206+ <div class =" flex items-center gap-2" >
178207 <ButtonBase
179208 size =" sm"
180- role =" radio"
181- :aria-checked =" customBgDark"
182- :aria-label =" $t('brand.logos.on_dark')"
183- class =" !border-none !rounded-none motion-reduce:transition-none"
184- :class ="
185- customBgDark ? 'bg-bg-muted text-fg' : 'bg-transparent text-fg-muted hover:text-fg'
186- "
187- @click =" customBgDark = true"
209+ :aria-label =" $t('brand.customize.download_svg_aria')"
210+ :disabled =" svgLoading"
211+ @click =" downloadCustomSvg"
188212 >
189- {{ $t('brand.logos.on_dark') }}
213+ <span
214+ class =" size-[1em]"
215+ aria-hidden =" true"
216+ :class =" svgLoading ? 'i-lucide:loader-circle animate-spin' : 'i-lucide:download'"
217+ />
218+ {{ $t('brand.logos.download_svg') }}
190219 </ButtonBase >
191220 <ButtonBase
192221 size =" sm"
193- role =" radio"
194- :aria-checked =" !customBgDark"
195- :aria-label =" $t('brand.logos.on_light')"
196- class =" !border-none !rounded-none border-is border-is-border motion-reduce:transition-none"
197- :class ="
198- !customBgDark ? 'bg-bg-muted text-fg' : 'bg-transparent text-fg-muted hover:text-fg'
199- "
200- @click =" customBgDark = false"
222+ :aria-label =" $t('brand.customize.download_png_aria')"
223+ :disabled =" pngLoading"
224+ @click =" downloadCustomPng"
201225 >
202- {{ $t('brand.logos.on_light') }}
226+ <span
227+ class =" size-[1em]"
228+ aria-hidden =" true"
229+ :class =" pngLoading ? 'i-lucide:loader-circle animate-spin' : 'i-lucide:download'"
230+ />
231+ {{ $t('brand.logos.download_png') }}
203232 </ButtonBase >
204233 </div >
205234 </div >
206-
207- <!-- Download buttons -->
208- <div class =" flex items-center gap-2" >
209- <ButtonBase
210- size =" sm"
211- :aria-label =" $t('brand.customize.download_svg_aria')"
212- :disabled =" svgLoading"
213- @click =" downloadCustomSvg"
214- >
215- <span
216- class =" size-[1em]"
217- aria-hidden =" true"
218- :class =" svgLoading ? 'i-lucide:loader-circle animate-spin' : 'i-lucide:download'"
219- />
220- {{ $t('brand.logos.download_svg') }}
221- </ButtonBase >
222- <ButtonBase
223- size =" sm"
224- :aria-label =" $t('brand.customize.download_png_aria')"
225- :disabled =" pngLoading"
226- @click =" downloadCustomPng"
227- >
228- <span
229- class =" size-[1em]"
230- aria-hidden =" true"
231- :class =" pngLoading ? 'i-lucide:loader-circle animate-spin' : 'i-lucide:download'"
232- />
233- {{ $t('brand.logos.download_png') }}
234- </ButtonBase >
235- </div >
236235 </div >
237236 </div >
238237 </section >
0 commit comments