Welcome
Matestack Ui Bootstrap - Beautiful, reactive web UIs, Ruby and you!
Version 3 was released on in February 2022. Click here for more details
Most important changes:
Split
matestack-ui-core
intomatestack-ui-core
andmatestack-ui-vuejs
Rails 7 support
Vue 3 support in
matestack-ui-vuejs
You're reading the docs for 3.0 --> If you want to see the docs for Version 2.1, click here
matestack-ui-bootstrap
ships all you need to build reactive AND styled UIs in pure Ruby orchestrating styled components (based on Bootstrap v5) with a simple Ruby DSL. Additionally smart CRUD components helps you building beautiful data-driven admin and application UIs.
All features of matestack-ui-core
and matestack-ui-vuejs
can be mixed in which gives you maximum flexibility while implementing your UIs.
Compatibility
matestack-ui-bootstrap
requires matestack-ui-vuejs
and matestack-ui-core
matestack-ui-bootstrap
is tested against:
Rails 7.0.1 + Ruby 3.0.0 + Vue.js 3.2.26
Rails 6.1.1 + Ruby 3.0.0 + Vue.js 3.2.26
Rails 6.1.1 + Ruby 2.7.2 + Vue.js 3.2.26
Rails 6.0.3.4 + Ruby 2.6.6 + Vue.js 3.2.26
Rails 5.2.4.4 + Ruby 2.6.6 + Vue.js 3.2.26
Rails versions below 5.2 are not supported.
Vue.js 2.x is supported when using the Compat build of Vue.js
Documentation/Installation
Detailed documentation can be found here
Feature walk-through
You might want to have a look at the dummy app in oder to better understand what kind of results you get out of matestack-ui-bootstrap
All Bootstrap v5 components, available in pure Ruby
Alongside smart components, matestack-ui-boostrap
ships all Bootstrap v5 components enabling you to use them in pure Ruby.
Imagine adding a Bootstrap `card` component within one line of Ruby, skipping recreating the required DOM structures again and again?
renders:
Mix that with Matestack's core components, Bootstrap's utility classes or custom CSS for customized UI implementation. That means you're able to use Bootstrap and matestack-ui-boostrap
components with a high level of abstraction for maximum productivity right next to core components like `div` with a lower level of abstraction for maximum flexibility!
On top of that, you're able to use all kinds of methods in order to render your UI based on conditions like `current_user.is_super_admin?`. Adjusting the UI to your custom rules based on pure Ruby is super easy. That's what we call flexible abstraction
!
The following code snippet demonstrates the usage of components shippend in matestack-ui-bootstrap
(bs_*
) alongside using utility classes (mt-3
) and matestack-ui-core
components (small
,b
...) and reactive components from matestack-ui-vuejs
(transition
):
Flexible, responsive, prebuilt app layouts
Use our prebuilt app templates through class inheritance in order to quickly setup typical layouts including sidebar and header navigation. Styles can be customized via SCSS theming.
Thanks to the fact that you're dealing with pure Ruby classes, it's also pretty easy to modify prebuilt UI structures and appearance in order to tailor the admin app to your individual needs.
leading to something like this (layout with sidebar and toasts tiggered on form and action submissions, page content is obviously defined somewhere else ;) -->
Powerful page layout components for great UI experience
Use components like bs_page_heading
or bs_section_card
together with grid components like bs_row
and bs_col
in order to quickly create a well structured, consistent and good looking UI.
Split rendering of complex, data-intesive UIs with Matestack's VueJs async
component and increase initial page load performance! All without writing one line of JavaScript:
and e.g.:
leading to something like this -->
Chart.js components accessible in pure Ruby
Want to visualize some data in charts? Matestack UI Bootstrap let's you easily integrate chart.js (copy/paste once from example in documentation [or choose any other chart library]) which from then on allows you to use chart components in pure Ruby without thinking of the JavaScript side!
Choose from line
, doughnut
, bar
or pie
charts and use theme colors for consistent coloring of datasets without touching CSS:
which leads to something like this -->
Reactive and styled forms in no time
matestack-ui-vuejs
already ships reactive forms, usable with pure Ruby. Within matestack-ui-bootstrap
you get styled form components, enabling you to create beautiful, reactive forms with a few lines of Ruby!
Create styled forms, with reactive error/success rendering without thinking of any implementation detail:
which results in something like this --> (errors are rendered dynamically after async form submission, a error toast would trigger as well if added to the layout)
Reactive, paginated, filterable tables, without the JavaScript hussle
Implementing a paginated, filterable collection is exhausting. And what about some reactivity when switching through the pages in order to avoid full page reloads? You don't want to build that yourself! That's why we've created the collection
component, shipped within matestack-ui-core
. The bs_smart_collection
shipped with matestack-ui-bootstrap
gives you even more:
A few lines of Ruby is enough to add a styled, reactive paginated table with filters to your UI! You can optionally modify column rendering and per-row actions via method injection:
which leads to something like this -->
...and if you're not into tables, you can adjust the collection content rendering with some custom ruby code while keeping all the reactivity:
which then looks like this -->
Last updated