Giter Site home page Giter Site logo

Lona (Developer Preview)


This project is in an early stage and lacks documentation – however, with some effort, it can be used very effectively. If you're interested in contributing or using it at your company, feel free to open a GitHub issue or get in touch with me on Twitter @dvnabbott. I'm currently supporting a few early adopters.

Airbnb doesn't provide support for this project. The code and automated tests are not at the same degree of technical rigor as other Airbnb projects.

Overview

Build Status

Lona is a collection of tools for building design systems and using them to generate cross-platform UI code, Sketch files, and other artifacts.

Lona consists primarily of 3 parts:

  • Lona Components - A data format, .component, for cross-platform components
  • Lona Studio - A GUI tool for designing .component files
  • Lona Compiler - A CLI tool & API for generating UI code from .component files

Why Lona? Read more about challenges with cross-platform design systems at scale, and how Lona solves them here.

Lona Components

A design system is defined in JSON as a collection of:

  • Components (can be nested)
  • Colors, Text Styles, Gradients, and Shadows
  • Data Types

The specification for these files can be found in the docs.

Lona Studio

Lona Studio provides a graphical interface for working with .component files.

Lona Studio is primarily for building component systems, but can also be used for:

  • Quickly mocking up new screens from existing components
  • Viewing designs with real data from JSON files or APIs
  • Experimenting with designs across multiple screen sizes
  • Automating design tasks - e.g. localizing screenshots for different languages and exporting hundreds of images
  • Working with animations (Lottie) and rendering videos from them
  • and more!

If you have Xcode installed, you can try it out by following the installation instructions.

Wondering if this replaces Sketch? Why a native Mac App? I answer some common questions here in the FAQ.

Lona Compiler

The Lona Compiler converts .component files to UI code for various targets.

Currently, these targets are supported:

  • iOS / macOS (Swift)
  • React DOM / React Native / React Sketchapp (JavaScript)

Support is planned for:

  • Android (Kotlin)

The target with the most features currently is Swift. However, it's still fairly rough. If you want to try it out, check out the installation instructions.

If you're looking for a sample of the generated code, check out the test cases

Core Team

Contributors

Lona's Projects

figma-jsonrpc icon figma-jsonrpc

Leverage JSON-RPC to communicate between your Figma plugin and your Figma UI.

language-tools icon language-tools

A system for lexing, parsing, serialization, and type generation.

lona icon lona

A tool for defining design systems and using them to generate cross-platform UI code, Sketch files, and other artifacts.

lona-github-action icon lona-github-action

A Github Action to check if Lona can run on the repo and upload a documentation website to Lona.

sketch-file icon sketch-file

Methods to make is easier to manipulate a Sketch file

studio icon studio

macOS application for building Lona workspaces

svg-model icon svg-model

Transform SVG files into a simpler JSON representation for rendering/transformation

themedcolor icon themedcolor

A backwards-compatible wrapper around NSColor's dynamicProvider initializer

xd-file icon xd-file

Methods to make is easier to manipulate an Adobe XD file

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.