The definitive source of the best
JavaScript libraries, frameworks, and plugins.

  • ×

    🙋‍♀️ 3kb library for tiny web apps
    Filed under 

    • 🔾38%Overall
    • 738
    • 9.8 days
    • 🕩29
    • 👥4

    The Lucia.js project is no longer maintained or usable, this repository serves as an archive for the source code. If you used Lucia.js, thank you for trying our the library in your projects. I hope this repository serves as a useful learning tool for others in the future. Note that the lucia NPM package name has been transfered to the lucia-auth project.

    Lucia Logo

    3kb library for tiny web apps.

    Sometimes, all you want to do is to try and do something—no boilerplate, bundlers, or complex build processes. Lucia aims to provide an augmentation layer for your logic, allowing you to bind attributes to your HTML to add interactivity without writing any extra JavaScript.

    CI Code Size NPM Version Code Coverage

    → Check out the Lucia Website

    Hi! Aiden here, author of Lucia. I hope you find an interesting take on web development and a useful tool for your projects. Lucia is actively looking for new maintainers, please leave a reply!

    -Aiden (@aidenybai)

    Installing Lucia

    Lucia doesn't require build tools by default. Feel free to just drop a script tag in the head of your webpage.

    <!-- Development version: helpful console tips -->
    <script src=""></script>
    <!-- Production version: no warnings -->
    <script src=""></script>

    It also integrates well with module bundlers like Webpack or Rollup; we recommend specifying the exact build if you import Lucia this way.

    → Learn more about installing Lucia

    Todo App Example

    Below is an extremely simple implementation of a todo app using Lucia, utilizing zero JavaScript. Tasks can be added by submitting the form with the input. No, your eyes aren't fooling you—it's really that simple.

    <div l-state="{ value: '', todo: [] }">
      <!-- oninput: set `value` to input.value -->
      <input l-model="value" />
      <!-- onclick: add the current `value` to the `todo` array -->
      <button @click="todo.push(value)">Create</button>
      <!-- joins `todo` array together -->
      <ul l-for="task in todo">
        <li l-text="this.task"></li>

    → View the live Codepen example


    Hack Club Bank

    Want your logo here? → Sponsor Lucia

    Resources & Contributing Back

    Looking for the docs? Check the Lucia website out.

    Have a question about Lucia? Post it on the GitHub Discussions and ask the community for help.

    Find a bug? Head over to our issue tracker and we'll do our best to help. We love pull requests, too!

    We expect all Lucia contributors to abide by the terms of our Code of Conduct.

    → Start contributing on GitHub


    Lucia is MIT-licensed open-source software by Aiden Bai et al.

    Lucia takes heavy inspiration from Vue's syntax, and believes in the core philosophies and values behind Alpine.js, Dababy, and Remake. Feel free to check them out if you interested in an alternative library to use.

    Lucia originates from the Latin word "lux", meaning "light, illuminance"

    © 2020-2021 Aiden Bai.

    Show All