All Projects → wikimedia → oojs-ui

wikimedia / oojs-ui

Licence: MIT license
OOUI is a modern JavaScript UI library with strong cross-browser support. It is the standard library for MediaWiki and Wikipedia. This is a mirror from https://gerrit.wikimedia.org. Main website:

Programming Languages

javascript
184084 projects - #8 most used programming language
Less
1899 projects
PHP
23972 projects - #3 most used programming language
ruby
36898 projects - #4 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to oojs-ui

banana-i18n
banana-i18n - Javascript Internationalization library
Stars: ✭ 61 (+35.56%)
Mutual labels:  i18n, l10n, javascript-library
Radialmenu
A highly customizable radial menu that's very easy to setup.
Stars: ✭ 371 (+724.44%)
Mutual labels:  icons, javascript-library, ui-components
figma-static-localizer
A Figma plugin for static localization
Stars: ✭ 30 (-33.33%)
Mutual labels:  i18n, l10n
react-i18next-phraseapp
Library support to use react-i18next with the Phrase In-Context Editor - DEPRECATED
Stars: ✭ 14 (-68.89%)
Mutual labels:  i18n, l10n
go-locale
GoLang library used to retrieve the current locale(s) of the operating system.
Stars: ✭ 16 (-64.44%)
Mutual labels:  i18n, l10n
awesome-i18n
🌍 A curated list of i18n resources for all kind of languages and frameworks
Stars: ✭ 205 (+355.56%)
Mutual labels:  i18n, l10n
msgtools
Tools for Developing Diagnostic Messages
Stars: ✭ 18 (-60%)
Mutual labels:  i18n, l10n
I18N
I18N Library for .NET, and Delphi
Stars: ✭ 48 (+6.67%)
Mutual labels:  i18n, l10n
Openl10n
[paused] A localization tool for your applications
Stars: ✭ 237 (+426.67%)
Mutual labels:  i18n, l10n
vue-example
Vue.js example application (server-side rendering, router, vuex store, form validation, i18n & l10n)
Stars: ✭ 62 (+37.78%)
Mutual labels:  i18n, l10n
stone.js
gettext-like client-side Javascript Internationalization Library
Stars: ✭ 20 (-55.56%)
Mutual labels:  i18n, l10n
vue-i18n
A small package for implementing translations in Vue.js
Stars: ✭ 40 (-11.11%)
Mutual labels:  i18n, l10n
React Datepicker
An easily internationalizable, accessible, mobile-friendly datepicker library for the web, build with styled-components.
Stars: ✭ 252 (+460%)
Mutual labels:  i18n, rtl
Kotsu
✨ Clean, opinionated foundation for new projects — to boldly go where no man has gone before
Stars: ✭ 48 (+6.67%)
Mutual labels:  i18n, l10n
React Native Globalize
Internationalization (i18n) for React Native
Stars: ✭ 246 (+446.67%)
Mutual labels:  i18n, l10n
android-studio-plugin
Integrate your Android project with Crowdin
Stars: ✭ 52 (+15.56%)
Mutual labels:  i18n, l10n
lp-loader
Frictionless language packs for Webpack.
Stars: ✭ 14 (-68.89%)
Mutual labels:  i18n, l10n
Nofw
A no-framework application skeleton
Stars: ✭ 212 (+371.11%)
Mutual labels:  i18n, l10n
Serge
Continuous localization platform
Stars: ✭ 212 (+371.11%)
Mutual labels:  i18n, l10n
awesome-translations
😎 Awesome lists about Internationalization & localization stuff. l10n, g11n, m17n, i18n. Translations! 🌎🌍
Stars: ✭ 54 (+20%)
Mutual labels:  i18n, l10n

npm Packagist

OOUI

OOUI is a component-based JavaScript UI library. Key features:

  • Common widgets, layouts, and dialogs
  • Classes, elements, and mixins to create custom interfaces
  • Internationalization and localization, like right-to-left (RTL) languages support
  • Theme-ability
  • Built-in icons
  • Accessibility features

It is the standard library for Web products at the Wikimedia Foundation, having been originally created for use by VisualEditor.

Quick start

The library is available on npm. To install:

$ npm install oojs-ui

Once installed, include the following scripts and styles to get started:

<script src="node_modules/jquery/dist/jquery.min.js"></script>
<script src="node_modules/oojs/dist/oojs.min.js"></script>
<script src="node_modules/oojs-ui/dist/oojs-ui.min.js"></script>
<script src="node_modules/oojs-ui/dist/oojs-ui-wikimediaui.min.js"></script>

Loading the library

While the distribution directory is chock-full of files, you will normally load only the following three:

  • oojs-ui.js, containing the full library;
  • One of oojs-ui-wikimediaui.css or oojs-ui-apex.css, containing theme-specific styles; and
  • One of oojs-ui-wikimediaui.js or oojs-ui-apex.js, containing theme-specific code

You can load additional icon packs from files named oojs-ui-wikimediaui-icons-*.css or oojs-ui-apex-icons-*.css.

The remaining files make it possible to load only parts of the whole library.

Furthermore, every CSS file has a right-to-left (RTL) version available, to be used on pages using right-to-left languages if your environment doesn't automatically flip them as needed.

Issue tracker

Found a bug or missing feature? Please report it in our issue tracker Phabricator!

Contributing

We are always delighted when people contribute patches. To setup your development environment:

  1. Clone the repo: $ git clone https://gerrit.wikimedia.org/r/oojs/ui oojs-ui

  2. Move into the library directory:
    $ cd oojs-ui

  3. Install composer and make sure running composer will execute it (e.g. add it to $PATH in POSIX environments).

  4. Install dev dependencies:
    $ npm install

  5. Build the library (you can alternatively use grunt quick-build if you don't need to rebuild the PNGs):
    $ grunt build

  6. You can see a suite of demos in /demos by executing:
    $ npm run-script demos

  7. You can also copy the distribution files from the dist directory into your project.

We use Gerrit for code review, and Phabricator to track issues. To contribute patches or join discussions all you need is a developer account.

  • If you've found a bug, or wish to request a feature raise a ticket on Phabricator.
  • To submit your patch, follow the "getting started" quick-guide. We try to review patches within a week.
  • We automatically lint and style-check changes to JavaScript, PHP, LESS/CSS, Ruby and JSON files. You can test these yourself with npm test and composer test locally before pushing changes. SVG files should be squashed in advance of committing with SVGO using svgo --pretty --disable=removeXMLProcInst --disable=cleanupIDs <filename>.

A new version of the library is released most weeks on Tuesdays.

Community

Get updates, ask questions and join the discussion with maintainers and contributors:

  • Join the Wikimedia Developers mailing list, wikitech-l.
  • Chat with the maintainers on #wikimedia-dev on irc.libera.chat.
  • Ask questions on StackOverflow.
  • Watchlist the documentation on MediaWiki to stay updated.

Versioning

We use the Semantic Versioning guidelines.

Releases will be numbered in the following format:

<major>.<minor>.<patch>

Release

Release process:

    $ cd path/to/oojs-ui/
    $ git remote update
    $ git checkout -B release -t origin/master

    # Ensure tests pass
    $ npm install && composer update && npm test && composer test

    # Update release notes
    # Copy the resulting list into a new section at the top of History.md and edit
    # into five sub-sections, in order:
    # * ### Breaking changes
    # * ### Deprecations
    # * ### Features
    # * ### Styles
    # * ### Code
    $ git log --format='* %s (%aN)' --no-merges --reverse v$(node -e 'console.log(require("./package.json").version);')...HEAD | grep -v "Localisation updates from" | sort
    $ edit History.md

    # Update the version number (change 'patch' to 'minor' if you've made breaking changes):
    $ npm version patch --git-tag-version=false

    $ git add -p
    $ git commit -m "Tag vX.X.X"
    $ git review

    # After merging:
    $ git remote update
    $ git checkout origin/master
    $ git tag "vX.X.X"
    $ npm run publish-build && git push --tags && npm publish
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].