Frontile is a component library for Ember.js applications, built with Tailwind CSS and Tailwind Variants.
Frontile provides components, helpers, modifiers, and styles for building Ember.js apps, offering both low-level primitives and high-level components.
Get started with Frontile in just a few steps:
pnpm install frontile @frontile/theme
Add Frontile's theme configuration to your app/styles/app.css for Tailwind CSS v4:
@import 'tailwindcss' source('../../');
@plugin "@frontile/theme/plugin/default";
@import "@frontile/theme";
/* Tailwind skips node_modules when scanning for classes, so Frontile's own
templates have to be pointed at or their classes get purged. */
@source '../../node_modules/frontile';
@source '../../node_modules/@frontile';
Paths are relative to the CSS file. Under Vite the entry stylesheet is usually
app/app.css, one level shallower, so the sources become
'../node_modules/...'.
The dark variant comes from @import "@frontile/theme" — you do not need to
declare @custom-variant dark yourself, and the version the theme ships also
handles theme-inverse.
import Component from '@glimmer/component';
import { Button } from 'frontile';
export default class Example extends Component {
onPress = () => {
alert('Welcome to Frontile!');
};
<template>
<Button @color='primary' @size='lg' @onPress={{this.onPress}}>
Get Started
</Button>
</template>
}
Note: The following packages are deprecated and will be removed in 0.19.0. See the migration guides for details:
@frontile/changeset-form- Usefrontileforms instead@frontile/forms-legacy- Migrate to the newfrontileforms
Frontile follows a component composition pattern that prioritizes:
Frontile supports all modern browsers and follows Ember.js compatibility guidelines:
Frontile is currently in active development and approaching v1.0. While the API is stabilizing, breaking changes may still occur. We recommend using Frontile in production with appropriate version pinning.
Frontile draws on patterns from other component libraries and design systems:
These projects have influenced Frontile's approach to component design, accessibility, theming, and developer experience.
See the Installation Guide to start building with Frontile.