Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Cannot retrieve contributors at this time


Upcoming release

Breaking changes:

  • Dropped support for Ruby 2.3 and 2.4

  • It's now recommended to use eager loading to prevent uninitialized component issues (see #121 for background).

    The install generator has been updated. When upgrading, please make sure you replace:

    config.autoload_paths << config.root.join("app/frontend/components")


    config.paths.add "frontend/components", eager_load: true


  • Support for Rails 6
  • Refactoring to use Utils in InstallGenerator and prevent code duplication

Bug fixes:

  • Fixed empty h1 in generated _examples.html.* file

v3.0.0.beta1 (2019-02-28)

Breaking changes:

  • Dropped support for Rails 4.2
  • Dropped support for Ruby 2.2


  • Komponent now reports component stats when you run bin/rails stats
  • Komponent now includes a styleguide engine that you can mount to your project to document your components, and 2 new generators:
    • rails g komponent:styleguide to set it up
    • rails g komponent:examples to generate an examples file for each existing component

Bug fixes:

  • Removed redundant class attribute in HAML templates
  • Fix content_for / yield which was no longer working across components, since v2.0.0
  • Fix translation key lookup in partials (helper method t)

v2.2.0 (2018-07-03)


  • Component generator: use component_name instead of module_name in templates, so when we create a button component, by default it contains button instead of button_component

Bug fixes:

  • Component generator: fix error when the single-quotes are used in imports

v2.1.0 (2018-05-31)


  • Block given to component now pass return values

v2.0.0 (2018-04-22)


  • Use lazy lookup for translations in all generator templates

v2.0.0.pre.1 (2018-04-12)

Breaking changes:

  • Removed deprecated render_partial method
  • Removed rendering of namespaced component with the old naming convention


  • Changed @block_given_to_component from an instance variable to a method block_given_to_component available in the view context
  • Implemented component caching with the cached: true option
  • Added a stylesheet_engine option to Komponent configuration
  • When generating a new component, the frozen_string_literal: true magic comment is prepended to Ruby files

v1.1.4 (2018-03-05)


  • Added frozen_string_literal option to optimize performance
  • Removed useless autoload_paths config definition (it was not taken into account)
  • Install generator can be ran several times in order to enable features
  • Autoloading is now appended to config/application.rb when you run rails g komponent:install
  • Make all locals passed to component helper available through properties helper method

v1.1.3 (2018-02-22)


  • Custom destroy for the component generator: you can now safely run rails d component button

Bug fixes:

  • Fix crash when nil is passed to a component

v1.1.2 (2018-02-13)


  • Support for Stimulus 1.0
  • imports are now sorted alphabetically every time you run the component generator
  • Added the block_given_to_component? helper to components

v1.1.1 (2018-01-20)


  • Add an option to change default root path where Komponent is installed, and components are generated

v1.1.0 (2018-01-12)


  • stimulus integration
  • Component generator supports css, scss, sass stylesheet engine
  • Add a component path resolver

Bug fixes

  • Make content_for work in component
  • Fix issue with wrong stylesheet extension being used when imported in JavaScript files


  • render_partial is deprecated in favor of default render
  • The file naming convention will be changed in the next major version, for namespaced components, to include the namespace:
    • frontend/components/admin/button/_button.html.slim -> frontend/components/admin/button/_admin_button.html.slim
    • frontend/components/admin/button/button.js -> frontend/components/admin/button/admin_button.js
    • frontend/components/admin/button/button.css -> frontend/components/admin/button/admin_button.css

v1.0.0 (2018-01-01)


  • Components namespacing
  • Implement basic features
  • Implement render_partial helper

v1.0.0.pre.2 (2017-12-09)


  • Lazy-load helpers and configuration
  • Add an install generator (rails g komponent:install)
  • Standardize components name (underscore for all except css classes are dasherized)
  • Support erb, slim, and haml template engines
  • Add an --locale option to component generator
  • Documentation improvements

v1.0.0.pre.1 (2017-12-09)

First pre-release