A user needs to perform an action, such as saving or confirming.
Keep in mind
Use a button for an action and a link for navigation. Set the button type explicitly inside forms.
02 / COMPONENT DEMO
Forms
A labeled field, helpful validation and a local success message.
Demo
HTML · CSS · JavaScript
<formid="email-form"><labelfor="email">Email address</label><pid="email-help">Enter your email to try this local demo.</p><inputid="email"name="email"type="email"autocomplete="email"aria-describedby="email-help"placeholder="you@example.com" required><buttonclass="br-button"type="submit">Try form</button><pid="form-result"role="status"></p></form>
document.querySelector('#email-form').addEventListener('submit',event => {event.preventDefault();document.querySelector('#form-result').textContent ='Valid email. This demo does not store or send your data.';});
Use it when
You need a clear label and a familiar field for user input.
Keep in mind
Keep labels visible. This demo uses native validation; a real form still needs server-side handling and validation.
03 / COMPONENT DEMO
Cards
A small content block with a clear title and an optional action.
Demo
HTML · CSS · JavaScript
<articleclass="br-card"aria-labelledby="card-title"><spanclass="br-card__eyebrow">A SMALL BEGINNING</span><h2id="card-title">Your next great idea</h2><p>A focused space for a title, a little context and one useful next step.</p><aclass="br-card__link"href="#card-details">Read more ↓</a><pid="card-details">Make the content your own.</p></article>
Related content needs a title, a short summary and an optional next step.
Keep in mind
Keep the heading meaningful and do not nest links or buttons inside another link.
04 / COMPONENT DEMO
Navigation
An expandable navigation panel with Escape and focus handling.
Demo
HTML · CSS · JavaScript
<navclass="br-nav"aria-label="Demo navigation"><divclass="br-nav__top"><strong>Bajrelio UI</strong><buttontype="button"class="br-button br-button--outline"id="menu-toggle"aria-expanded="false"aria-controls="menu-links">Menu</button></div><divid="menu-links"class="br-nav__links" hidden><ahref="#overview"aria-current="page">Overview</a><ahref="#examples">Examples</a><ahref="#resources">Resources</a></div></nav><pid="overview">A simple disclosure menu. Try Menu, Tab and Escape.</p><pid="examples">Examples help explain the interface.</p><pid="resources">Start small, then make it yours.</p>
A small set of links needs a compact, expandable navigation panel.
Keep in mind
This is a disclosure pattern, not an ARIA application menu. Keep keyboard access and Escape behavior intact.
05 / COMPONENT DEMO
Dialogs
A native modal dialog with a title, close controls and focus return.
Demo
HTML · CSS · JavaScript
<buttonclass="br-button"type="button"id="open-dialog">Open dialog</button><pid="dialog-result"role="status">Try opening the dialog.</p><dialogclass="br-dialog"id="demo-dialog"aria-labelledby="dialog-heading"><h2id="dialog-heading">Make it yours.</h2><p>A focused space for an important decision.</p><divclass="br-dialog__actions"><buttontype="button"class="br-button br-button--outline"id="cancel-dialog">Cancel</button><buttontype="button"class="br-button"id="confirm-dialog">Confirm</button></div></dialog>
A focused decision needs the user’s attention before continuing.
Keep in mind
Give the dialog a title, preserve Escape behavior and return focus to the opener. Try the dialog inside its preview.
06 / COMPONENT DEMO
Feedback
A helpful status message that appears after a user action.
Demo
HTML · CSS · JavaScript
<buttontype="button"class="br-button"id="save-button">Save changes</button><divid="save-status"role="status"aria-live="polite"></div><pclass="br-hint">A local demonstration. No changes are sent to a server.</p>