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="https://unpkg.com/lucia"></script>

<!-- Production version: no warnings -->
<script src="https://unpkg.com/lucia/dist/lucia.min.js"></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>
  </ul>
</div>

→ View the live Codepen example

Sponsors

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

Acknowledgments

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.