You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.0 KiB
35 lines
1.0 KiB
import type { Morfo } from '../types';
|
|
|
|
/**
|
|
* Link — inline text link typography primitive.
|
|
*
|
|
* Eidos-native: renders `<a>` by default (or `<span aria-disabled>` when
|
|
* disabled). Inherits ambient typography — no own `style` prop — so it
|
|
* composes mid-paragraph without breaking the text scale. Visual
|
|
* variants drive the underline + color treatment.
|
|
*
|
|
* Passive on the morfo surface: Link has hover/active visual states but
|
|
* no semantic events. Click / navigation is the consumer's
|
|
* responsibility (SvelteKit `<a>`, custom router, sema-driven actions
|
|
* on the surrounding component). When Link is used as a button-style
|
|
* affordance (form submit, dialog action), the consumer should wrap a
|
|
* `<Toolbar.Button>` instead — that surface owns the sema commit.
|
|
*/
|
|
export const linkMorfo = {
|
|
name: 'Link',
|
|
kebab: 'link',
|
|
scope: ['eidos'],
|
|
parts: [
|
|
{
|
|
name: 'Provider',
|
|
kebab: 'provider',
|
|
archetype: 'provider',
|
|
kind: 'public',
|
|
defaultElement: 'a',
|
|
optional: false,
|
|
data: [],
|
|
aria: []
|
|
}
|
|
]
|
|
} as const satisfies Morfo;
|