Files
supabase/apps/studio/components
Ali Waseem 28977561f2 fix: update header title to wrap in span instead of fragments (#42885)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Fix missing space in Table Editor row panel header ("Add new row totest"
→ "Add new row to test") by wrapping the HeaderTitle content in a span
to prevent flexbox whitespace collapsing between sibling elements. Its
only used in a single place

<img width="670" height="50" alt="Screenshot 2026-02-16 at 2 11 03 PM"
src="https://github.com/user-attachments/assets/29ab98b3-bb3e-488d-ac05-c934f7e028a0"
/>
2026-02-17 07:22:54 -07:00
..
2026-02-17 13:59:29 +01:00

Writing components

Where to create your components

  • For components that declare the general structure and layout of a page:
    • /components/layouts/xxx
  • For components that are tightly coupled to a specific interface:
    • /components/interfaces/xxx
  • For components that are meant to be reusable across multiple pages:
    • /components/ui/xxx
  • Note: We're gradually moving files out of the to-be-cleaned folder into the respective folders as we refactor

Component structure

  • If a component has constants and utility methods that are tightly coupled to itself, keep them close to the component and enclose them in a folder with an index.tsx as an entry point
  • Otherwise it can just be a file on its own
  • For example:
    • components/ui
      - SampleComponentA
        - SampleComponentA.tsx
        - SampleComponentA.constants.ts
        - SampleComponentA.utils.ts
        - SampleComponentA.types.ts
        - index.ts
      - SampleComponentB.tsx
      

Template for building components


// Declare the prop types of your component
interface ComponentAProps {
  sampleProp: string
}

// Name your component accordingly
const ComponentA = ({ sampleProp }: ComponentAProps) => {
  return <div>ComponentA: {sampleProp}</div>
}

export default ComponentA