Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 98 additions & 0 deletions docs/src/pages/focus-test.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
---
import BaseLayout from '../layouts/BaseLayout.astro';
---

<BaseLayout title="Focus Treatment Test">
<div class="focus-test">
<h1>Focus Treatment Comparison</h1>
<p>Tab through each component below to compare focus styles.</p>

<section>
<h2>Text Area</h2>
<goa-text-area version="2" name="textarea"></goa-text-area>
</section>

<section>
<h2>Dropdown</h2>
<goa-dropdown version="2" name="dropdown">
<goa-dropdown-item value="a" label="Option A"></goa-dropdown-item>
<goa-dropdown-item value="b" label="Option B"></goa-dropdown-item>
<goa-dropdown-item value="c" label="Option C"></goa-dropdown-item>
</goa-dropdown>
</section>

<section>
<h2>Checkbox</h2>
<goa-checkbox version="2" name="checkbox" text="Checkbox label"></goa-checkbox>
</section>

<section>
<h2>Radio Group</h2>
<goa-radio-group version="2" name="radio-group">
<goa-radio-item value="1" label="Option 1"></goa-radio-item>
<goa-radio-item value="2" label="Option 2"></goa-radio-item>
<goa-radio-item value="3" label="Option 3"></goa-radio-item>
</goa-radio-group>
</section>

<section>
<h2>Date Picker</h2>
<goa-date-picker version="2" name="date"></goa-date-picker>
</section>

<section>
<h2>Button</h2>
<goa-button version="2" type="primary">Primary</goa-button>
<goa-button version="2" type="secondary">Secondary</goa-button>
<goa-button version="2" type="tertiary">Tertiary</goa-button>
</section>

<section>
<h2>Icon Button</h2>
<goa-icon-button version="2" icon="add"></goa-icon-button>
</section>

<section>
<h2>Link Button</h2>
<goa-link-button version="2">Link button</goa-link-button>
</section>

<section>
<h2>Filter Chip</h2>
<goa-filter-chip version="2" content="Filter chip"></goa-filter-chip>
</section>

<section>
<h2>Chip</h2>
<goa-chip version="2" content="Chip"></goa-chip>
</section>
</div>
</BaseLayout>

<style>
.focus-test {
max-width: 800px;
margin: 2rem auto;
padding: 0 1.5rem;
display: flex;
flex-direction: column;
gap: 2rem;
}

section {
display: flex;
flex-direction: column;
gap: 0.75rem;
}

section:has(goa-button) {
flex-direction: row;
align-items: center;
flex-wrap: wrap;
gap: 0.75rem;
}

section:has(goa-button) h2 {
width: 100%;
}
</style>
5 changes: 3 additions & 2 deletions libs/web-components/src/components/dropdown/Dropdown.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -957,10 +957,11 @@
box-shadow: var(--goa-dropdown-border), var(--goa-dropdown-border-focus);
}

/* V2: Focus state has a single border */
/* V2: Focus state - offset outline ring consistent with button focus style */
.v2 .dropdown-input-group:has(input:focus-visible),
.v2 .dropdown-input-group.error:has(:focus-visible) {
box-shadow: var(--goa-dropdown-border-focus);
outline: var(--goa-border-width-l) solid var(--goa-color-interactive-focus);
outline-offset: var(--goa-space-3xs);
}

.dropdown-input-group.error,
Expand Down
5 changes: 3 additions & 2 deletions libs/web-components/src/components/input/Input.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -568,9 +568,10 @@
var(--goa-text-input-border), var(--goa-text-input-border-focus);
}

/* V2: Focus state shows only blue focus border (no default border) */
/* V2: Focus state - offset outline ring consistent with button focus style */
.container.v2 .goa-input:has(input:focus-visible) {
box-shadow: var(--goa-text-input-border-focus);
outline: var(--goa-border-width-l) solid var(--goa-color-interactive-focus);
outline-offset: var(--goa-space-3xs);
}

/* type=range does not have an outline/box-shadow */
Expand Down
8 changes: 5 additions & 3 deletions libs/web-components/src/components/text-area/TextArea.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -318,14 +318,16 @@
);
}

/* V2 focus state - single blue border only (no layered borders) */
/* V2 focus state - offset outline ring consistent with button focus style */
.v2.root:focus-within {
box-shadow: var(--goa-text-area-border-focus);
outline: var(--goa-border-width-l) solid var(--goa-color-interactive-focus);
outline-offset: var(--goa-space-3xs);
}
.v2.error:focus,
.v2.error:focus-within,
.v2.error:focus-within:hover {
box-shadow: var(--goa-text-area-border-focus);
outline: var(--goa-border-width-l) solid var(--goa-color-interactive-focus);
outline-offset: var(--goa-space-3xs);
}

/* V2 compact size variant */
Expand Down
Loading