Git Product home page Git Product logo

oruga's Introduction

Oruga UI is like a caterpillar, minimal and yet functional. It's in your hands turning it into a butterfly

(๐Ÿ›) => ๐Ÿฆ‹

Oruga is a lightweight library of UI components for Vue.js without CSS framework dependency

Note

Oruga for Vue 2.x deprecated
Due to EOL for Vue 2.x at the end of the year, from now on Oruga for Vue 2 is deprecated. Further enhancements will only be developed for Oruga-next. See #496.

Contact us ๐Ÿ‘พ

Support us โœŒ๐Ÿป

Donate using Ko-fi

Features

Oruga is a lightweight UI components library for Vue.js without any dependency. It offers a set of easily customisable components and doesn't depend on any specific style or CSS framework (like Bootstrap, Bulma, TailwindCSS, etc...). Therefore, it doesn't provide a grid system or CSS utilities, but you can integrate any CSS framework you like. Oruga provides you with a set of functional components, so you can focus only on the UI/UX aspects of your application and can be entirely flexible for future changes without having to touch a line of JavaScript.

  • CSS framework agnostic: No dependency on a specific CSS framework/library but you can easily integrate the components with one of them because they are fully customizable in different ways
  • Components with steroids: most of the components aren't a simple wrapper of native elements but they add new and custom features
  • Lightweight: no other internal dependency and import only components that you need

If you need a component library and want to easily apply your custom styles, Oruga is the library for you! ๐Ÿ›

In addition, if you don't want to style everything yourself, we've created several themes to provide you with a variety of ready-to-use styles. ๐Ÿฆ‹

Documentation

Browse online documentation here.

๐Ÿ’… For more info about components customization, read carefully the "customization" section in the documentation.

๐Ÿ•น To see Oruga in action, go to the Example section in the documentation.

Note: the documentation source code is in the docs directory, it serves as the demo as well.

Browser support

๐ŸŒŽ Oruga has been tested in all major browsers

Chrome Firefox Opera Safari Edge
Latest โœ” Latest โœ” Latest โœ” Latest โœ” Latest โœ”

Quick start

๐Ÿ› Oruga is available for Vue.js version 3.x

Setup Oruga

  1. Install Oruga.
npm install @oruga-ui/oruga-next
  1. Import the components:
  • To get started quickly, use Oruga to register all components:

    import { createApp } from 'vue'
    import Oruga from '@oruga-ui/oruga-next';
    
    createApp(...).use(Oruga);
  • To use tree shaking, either register component manually:

    import { createApp } from 'vue'
    import { OField, OInput } from '@oruga-ui/oruga'
    
    createApp(...)
      .use(OField)
      .use(OInput)
  • or import them in your SFC.

Customization

Oruga's superpower is its configurability and its CSS framework agnostic approach. Each component can be individually customised and configured by defining specific classes using a class-mapping approach. Therefore, Oruga comes without any styling by default. However, there are several official predefined configurations called themes, which you can include and extend to give your application a individual look and feel. And all components came with predefined classes by default.

Please read the "customization" section in Oruga documentation.

If you want to see an example with a fully customized registration form using Tailwind, Bulma, Bootstrap or Material CSS framework have a look at the official Oruga multiframework example (source code available here) or if you're more familiar with TailwindCSS 2 give our official TailwindCSS Demo a try (source code here)

Using Oruga with Nuxt

Oruga doesn't provide a Nuxt.js module at the moment.

You can use Nuxt.js plugins system adding a file (e.g. oruga.js) in your plugins folder containing:

import Oruga from '@oruga-ui/oruga-next';

export default defineNuxtPlugin((nuxtApp) => {
  nuxtApp.vueApp.use(Oruga);
});

To make this plugin available in your app, add this file to the plugins array in your nuxt.config.js

plugins: [{ src: '~plugins/oruga.js' }]

To understand how the plugins work with Nuxt.js, take a look at the NuxtJS plugin documentation.

Take a look at the official NuxtJS + Oruga example.

Contributing

Please see the contributing guidelines.

Versioning

Oruga uses Semantic Versioning 2.0.0 for package versions.

While it's still in beta, versions will follow this pattern: v0.Y.Z, where:

  • Y: Major (breaking changes)
  • Z: Minor or patch

Core Team


Walter Tommasi


Andrea Stagi


Marcel Moravek

Contributors

Thank you to everyone involved for improving this project, day by day ๐Ÿ’š

Complete list.

Credits

Oruga logo designed by Matteo Guadagnini

Oruga svg images for Checkbox and Radio components and Holidays assets created by Fabrizio Masini

License

Code released under MIT license.

oruga's People

Contributors

jtommy avatar astagi avatar mlmoravek avatar dependabot[bot] avatar urkle avatar lsnow99 avatar tcitworld avatar bzd2000 avatar iqbaltawakkal avatar whiplashwebb avatar zhaolinlau avatar mattze avatar febrihidayan avatar rubjo avatar tradiff avatar area73 avatar mouadtaoussi avatar fabiiomiiguel avatar blm768 avatar stefanobartoletti avatar roileo avatar cimchd avatar ishitatsuyuki avatar re2005 avatar mmorainville avatar j-a-m-l avatar didaquis avatar danielroe avatar amir20 avatar sylvainpolletvillard avatar

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.