Skip to content

Latest commit

 

History

History
59 lines (43 loc) · 1.99 KB

03-styles.md

File metadata and controls

59 lines (43 loc) · 1.99 KB

Styles

Overview

Styles - set of functions and parameters for components to customize their behavior.

Styles is a table, where key is name of component, and value is style table for this component.

In component API documentation, you can find the style API for this component. Or just lookup for existing styles and modify them.

Usage

Setup default druid style for all druid instances via druid.set_default_style You can pass nil or empty_table to use default values for all components (no styles)

local druid = require("druid.druid")
local my_style = require("my.amazing.style")

local function init(self)
	druid.set_default_style(my_style)
end

Setup custom style to specific druid instance:

local druid = require("druid.druid")
local my_style = require("my.amazing.style")

local function init(self)
	-- This druid instance will be use my_style as default
	self.druid = druid.new(self, my_style)
end

Change component style with set_style function

local druid = require("druid.druid")
local my_style = require("my.amazing.style")

local function init(self)
	self.druid = druid.new(self)
	self.button = self.druid:new_button("node", function() end)
	-- Setup custom style for specific component
	self.button:set_style(my_style)
end

Create your own styles

The most components have their styles. You can explore it on Druid API in table style section (button example). Or you can see, what fields component uses in code in function on_style_change

To create you style, create lua module, what return <component_name, component_style> table

Example: default druid style

Override all fields you want and set your style with one of next ways:

  • Set your style as global via druid.set_default_style
  • Set style for concrete druid instance via druid = druid.new(self, style)
  • Set style for concrete instance via component:set_style(style)