@@ -630,41 +630,16 @@ export default function Home() {
630630 </ div >
631631 </ div >
632632
633- { /* Shape — not applicable to pixel-art or full-scene styles */ }
634- { ! minecraftSelected && ! onepieceSelected && ! aotSelected && ! gotSelected && (
635- < div className = "mb-7" >
636- < label className = "block text-[11px] font-semibold text-white/35 uppercase tracking-widest mb-2.5" >
637- Shape
638- </ label >
639- < div className = "inline-flex gap-1 p-1 bg-white/[0.04] border border-white/[0.08] rounded-lg" >
640- { [
641- { id : "box" , name : "Box" , Icon : Square } ,
642- { id : "circle" , name : "Circular" , Icon : Circle } ,
643- ] . map ( ( { id, name, Icon } ) => (
644- < button
645- key = { id }
646- onClick = { ( ) => setShape ( id ) }
647- aria-pressed = { shape === id }
648- aria-label = { `${ name } cells` }
649- className = { `flex items-center gap-1.5 px-4 py-2 rounded-md text-[12px] font-semibold transition-colors cursor-pointer ${
650- shape === id
651- ? "bg-white text-black"
652- : "text-white/50 hover:text-white"
653- } `}
654- >
655- < Icon className = "size-3.5" />
656- { name }
657- </ button >
658- ) ) }
659- </ div >
660- </ div >
661- ) }
662-
663633 { /* Theme */ }
664634 < div >
665635 < label className = "block text-[11px] font-semibold text-white/35 uppercase tracking-widest mb-3" >
666636 Theme
667637 </ label >
638+
639+ { /* General — solid box/dot themes; the Shape selector applies to these */ }
640+ < p className = "text-[11px] font-semibold text-white/30 uppercase tracking-widest mb-2.5" >
641+ General
642+ </ p >
668643 < div className = "flex flex-wrap gap-2" >
669644 { gridThemes . map ( ( t ) => (
670645 < button
@@ -692,7 +667,42 @@ export default function Home() {
692667 </ span >
693668 </ button >
694669 ) ) }
670+ </ div >
671+
672+ { /* Shape lives with General — it only changes how these solid cells
673+ are drawn (box vs circle); pixel-art/full-scene themes ignore it. */ }
674+ { ! minecraftSelected && ! onepieceSelected && ! aotSelected && ! gotSelected && (
675+ < div className = "mt-3 flex items-center gap-2.5" >
676+ < span className = "text-[11px] font-medium text-white/30" > Shape</ span >
677+ < div className = "inline-flex gap-1 p-1 bg-white/[0.04] border border-white/[0.08] rounded-lg" >
678+ { [
679+ { id : "box" , name : "Box" , Icon : Square } ,
680+ { id : "circle" , name : "Circular" , Icon : Circle } ,
681+ ] . map ( ( { id, name, Icon } ) => (
682+ < button
683+ key = { id }
684+ onClick = { ( ) => setShape ( id ) }
685+ aria-pressed = { shape === id }
686+ aria-label = { `${ name } cells` }
687+ className = { `flex items-center gap-1.5 px-3.5 py-1.5 rounded-md text-[12px] font-semibold transition-colors cursor-pointer ${
688+ shape === id
689+ ? "bg-white text-black"
690+ : "text-white/50 hover:text-white"
691+ } `}
692+ >
693+ < Icon className = "size-3.5" />
694+ { name }
695+ </ button >
696+ ) ) }
697+ </ div >
698+ </ div >
699+ ) }
695700
701+ { /* Special — show themes; selecting one expands its variants below */ }
702+ < p className = "text-[11px] font-semibold text-white/30 uppercase tracking-widest mt-5 mb-2.5" >
703+ Special
704+ </ p >
705+ < div className = "flex flex-wrap gap-2" >
696706 { /* Minecraft group — opens the block-style sub-options below */ }
697707 { minecraftGroup && (
698708 < button
0 commit comments