Input
Added 14 October 2026
React
Codecomponents/react/input-demo.tsx
import {Input, Label} from '@stroeer-labs/design-library/react';
export function InputDemo() {
return (
<div className="space-y-6">
<div className="space-y-2">
<p className="text-xs font-medium text-muted-foreground">Default</p>
<Input type="email" placeholder="Email" className="max-w-sm" />
</div>
<div className="space-y-2">
<p className="text-xs font-medium text-muted-foreground">With label</p>
<div className="grid w-full max-w-sm gap-2">
<Label htmlFor="input-demo-name">Name</Label>
<Input id="input-demo-name" placeholder="Jane Doe" />
</div>
</div>
<div className="space-y-2">
<p className="text-xs font-medium text-muted-foreground">Disabled</p>
<Input placeholder="Disabled" disabled className="max-w-sm" />
</div>
<div className="space-y-2">
<p className="text-xs font-medium text-muted-foreground">Floating (over a map — bg-muted stands in for it)</p>
<div className="rounded-lg bg-muted p-4">
<Input variant="floating" aria-label="Search for a place" placeholder="City, street, postal code" className="max-w-sm" />
</div>
</div>
<div className="space-y-2">
<p className="text-xs font-medium text-muted-foreground">Invalid</p>
<Input placeholder="Invalid" aria-invalid className="max-w-sm" />
</div>
<div className="space-y-2">
<p className="text-xs font-medium text-muted-foreground">File</p>
<Input type="file" className="max-w-sm" />
</div>
</div>
);
}Angular
Codecomponents/angular/input-demo.ts
import '@angular/compiler';
import {Component} from '@angular/core';
import {HlmInputImports, HlmLabelImports} from '@stroeer-labs/design-library/angular';
@Component({
selector: 'dl-input-demo',
standalone: true,
imports: [HlmInputImports, HlmLabelImports],
template: `
<div class="space-y-6">
<div class="space-y-2">
<p class="text-xs font-medium text-muted-foreground">Default</p>
<input hlmInput type="email" placeholder="Email" class="max-w-sm" />
</div>
<div class="space-y-2">
<p class="text-xs font-medium text-muted-foreground">With label</p>
<div class="grid w-full max-w-sm gap-2">
<label hlmLabel for="input-demo-name-ng">Name</label>
<input hlmInput id="input-demo-name-ng" placeholder="Jane Doe" />
</div>
</div>
<div class="space-y-2">
<p class="text-xs font-medium text-muted-foreground">Disabled</p>
<input hlmInput placeholder="Disabled" disabled class="max-w-sm" />
</div>
<div class="space-y-2">
<p class="text-xs font-medium text-muted-foreground">Floating (over a map — bg-muted stands in for it)</p>
<div class="rounded-lg bg-muted p-4">
<input hlmInput variant="floating" aria-label="Search for a place" placeholder="City, street, postal code" class="max-w-sm" />
</div>
</div>
<div class="space-y-2">
<p class="text-xs font-medium text-muted-foreground">Invalid</p>
<input hlmInput placeholder="Invalid" aria-invalid="true" class="max-w-sm" />
</div>
<div class="space-y-2">
<p class="text-xs font-medium text-muted-foreground">File</p>
<input hlmInput type="file" class="max-w-sm" />
</div>
</div>
`,
})
export class InputDemoComponent {}