webfluent 0.4.0-alpha

The Web-First Language — compiles to HTML, CSS, JavaScript, and PDF. 50+ built-in components, reactivity, routing, i18n, SSG, and template engine.
Documentation
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>WebFluent — The Web-First Language</title>
    <meta name="description" content="A programming language that compiles to HTML, CSS, and JavaScript. Build SPAs and static sites with built-in components, reactivity, routing, i18n, and animations.">
    <link rel="stylesheet" href="./styles.css">
</head>
<body>
    <div id="app">
        <!--wf-component-->
        <div class="wf-row">
            <!--wf-component-->
            <div class="wf-container">
                <div class="wf-spacer"></div>
                <h1 class="wf-heading wf-heading--h1 wf-text--center wf-animate-slideUp">The Web-First Language</h1><div class="wf-spacer"></div>
                <p class="wf-text wf-text--muted wf-text--center wf-animate-fadeIn">A programming language that compiles to HTML, CSS, and JavaScript.</p><p class="wf-text wf-text--muted wf-text--center wf-animate-fadeIn">Built-in components, reactivity, routing, i18n, animations, and SSG.</p><div class="wf-spacer"></div>
                <div class="wf-row">
                    <button class="wf-btn wf-btn--primary wf-btn--large">
                        Get Started
                    </button><button class="wf-btn wf-btn--large">
                        View Guide
                    </button></div><div class="wf-spacer"></div>
                <div class="wf-card wf-card--outlined">
                    <div class="wf-card__body">
                        <code class="wf-code">Page Home (path: &quot;/&quot;) {
    Container {
        Heading(&quot;Hello, WebFluent!&quot;, h1)
        Text(&quot;Build for the web. Nothing else.&quot;)

        Button(&quot;Get Started&quot;, primary, large) {
            navigate(&quot;/docs&quot;)
        }
    }
}</code></div></div><div class="wf-spacer"></div>
                <hr class="wf-divider">
                <div class="wf-spacer"></div>
                <h2 class="wf-heading wf-heading--h2 wf-text--center">Try It Live</h2><p class="wf-text wf-text--muted wf-text--center">These are real WebFluent components running in your browser.</p><div class="wf-spacer"></div>
                <div class="wf-grid" style="grid-template-columns: repeat(2, 1fr)">
                    <div class="wf-card wf-card--elevated wf-animate-fadeIn">
                        <div class="wf-card__header">
                            <h2 class="wf-heading wf-heading--h2">Reactive Counter</h2></div><div class="wf-card__body">
                            <div class="wf-row">
                                <button class="wf-btn wf-btn--large">
                                    -
                                </button><h2 class="wf-heading wf-heading--h2 wf-heading--primary"></h2><button class="wf-btn wf-btn--primary wf-btn--large">
                                    +
                                </button></div><div class="wf-spacer"></div>
                            <p class="wf-text wf-text--muted wf-text--small">Click the buttons. The number updates instantly.</p></div></div><div class="wf-card wf-card--elevated wf-animate-fadeIn">
                        <div class="wf-card__header">
                            <h2 class="wf-heading wf-heading--h2">Two-Way Binding</h2></div><div class="wf-card__body">
                            <input class="wf-input" type="text">
                            <div class="wf-spacer"></div>
                            <!--wf-if-->
                            <p class="wf-text wf-text--muted wf-text--small">The alert updates as you type.</p></div></div><div class="wf-card wf-card--elevated wf-animate-fadeIn">
                        <div class="wf-card__header">
                            <h2 class="wf-heading wf-heading--h2">Conditional Rendering</h2></div><div class="wf-card__body">
                            <label class="wf-switch"></label><div class="wf-spacer"></div>
                            <!--wf-if-->
                        </div></div><div class="wf-card wf-card--elevated wf-animate-fadeIn">
                        <div class="wf-card__header">
                            <h2 class="wf-heading wf-heading--h2">Components</h2></div><div class="wf-card__body">
                            <div class="wf-stack">
                                <div class="wf-row">
                                    <button class="wf-btn wf-btn--primary">Primary</button><button class="wf-btn wf-btn--danger">Danger</button><button class="wf-btn wf-btn--success">Success</button></div><div class="wf-row">
                                    <span class="wf-badge wf-badge--primary">New</span><span class="wf-badge wf-badge--danger">Sale</span><span class="wf-badge wf-badge--success">Active</span><span class="wf-tag">WebFluent</span></div><progress class="wf-progress" value="72" max="100"></progress><p class="wf-text wf-text--muted wf-text--small">Button variants, badges, tags, and progress bar.</p></div></div></div></div><div class="wf-spacer"></div>
                <hr class="wf-divider">
                <div class="wf-spacer"></div>
                <h2 class="wf-heading wf-heading--h2 wf-text--center">Why WebFluent?</h2><p class="wf-text wf-text--muted wf-text--center">Everything you need, built into the language.</p><div class="wf-spacer"></div>
                <div class="wf-grid" style="grid-template-columns: repeat(3, 1fr)">
                    <!--wf-component-->
                    <!--wf-component-->
                    <!--wf-component-->
                    <!--wf-component-->
                    <!--wf-component-->
                    <!--wf-component-->
                    <!--wf-component-->
                    <!--wf-component-->
                    <!--wf-component-->
                </div><div class="wf-spacer"></div>
                <div class="wf-card wf-card--elevated">
                    <div class="wf-card__body">
                        <div class="wf-row">
                            <div class="wf-stack">
                                <h2 class="wf-heading wf-heading--h2">Ready to build?</h2><p class="wf-text wf-text--muted">Create your first project in seconds.</p></div><button class="wf-btn wf-btn--primary wf-btn--large">
                                Get Started
                            </button></div></div></div><div class="wf-spacer"></div>
            </div></div>
        <!--wf-component-->
    </div>
    <script src="./app.js"></script>
</body>
</html>