From 8f49d0cba610e4829e183e81e4126aba136dfccc Mon Sep 17 00:00:00 2001 From: Volpeon Date: Mon, 7 Feb 2022 18:37:09 +0100 Subject: Added action-menu --- tpl/index.pug | 15 +++++++++++++++ tpl/objects/action-button.pug | 37 ++++++++++++++++++++----------------- tpl/objects/action-menu.pug | 25 +++++++++++++++++++++++++ tpl/objects/icon.pug | 15 ++++++++++----- tpl/objects/status-indicator.pug | 5 ++++- 5 files changed, 74 insertions(+), 23 deletions(-) create mode 100644 tpl/objects/action-menu.pug (limited to 'tpl') diff --git a/tpl/index.pug b/tpl/index.pug index 206e40b..a59526e 100644 --- a/tpl/index.pug +++ b/tpl/index.pug @@ -15,6 +15,7 @@ include objects/form.pug include objects/action-button.pug include objects/status-indicator.pug include objects/avatar.pug +include objects/action-menu.pug mixin box +container(padX=true padY=true inPage=true theme="raised") @@ -435,3 +436,17 @@ html +avatar(circle=true size='xs' hue=225) = 'o' +avatar(circle=true size='xs' src='avatar.png') + + //----------------------------------------- + + +h1-heading(level='xl')= 'Action menu' + +rule(level='medium') + + +box + +action-menu + +action-menu-item(icon='trash')= 'Item 1' + +action-menu-item= 'Item 2' + +action-menu-item= 'Item 3' + +action-menu-separator + +action-menu-item= 'Item 4' + diff --git a/tpl/objects/action-button.pug b/tpl/objects/action-button.pug index 0afe1ea..eb524a2 100644 --- a/tpl/objects/action-button.pug +++ b/tpl/objects/action-button.pug @@ -1,21 +1,24 @@ include icon.pug mixin action-button - - - let classes = { - 'o-action-button': true, - 'o-action-button--block': attributes.block, - 'o-action-button--quiet': attributes.quiet, - 'is-disabled': attributes.disabled, - 'is-selected': attributes.selected - } - - let href = attributes.disabled ? null : '#'; + - + let classes = { + 'o-action-button': true, + 'o-action-button--block': attributes.block, + 'o-action-button--quiet': attributes.quiet, + 'is-disabled': attributes.disabled, + 'is-selected': attributes.selected + } + if (attributes.class) { + classes[attributes.class] = true; + } - a(class=classes href=href) - if attributes.icon - +icon(attributes.icon) - = ' ' - if block - span.o-action-button__label - block + let href = attributes.disabled ? null : '#'; + + a(class=classes href=href) + if attributes.icon + +icon(attributes.icon) + = ' ' + if block + span.o-action-button__label + block diff --git a/tpl/objects/action-menu.pug b/tpl/objects/action-menu.pug new file mode 100644 index 0000000..85f93bf --- /dev/null +++ b/tpl/objects/action-menu.pug @@ -0,0 +1,25 @@ +include ../objects/action-button.pug +include icon.pug + +mixin action-menu + - + let classes = { + 'o-action-menu': true, + 'o-action-menu--static': true, + 't-raised': true + } + + div(class=classes) + block + +mixin action-menu-item + button.o-action-menu__item.o-action-menu__item--native + .l-card.l-card--flush + .l-card__block.o-action-menu__icon-slot + if attributes.icon + +icon(attributes.icon) + .l-card__block.l-card__block--main + block + +mixin action-menu-separator + .o-action-menu__separator diff --git a/tpl/objects/icon.pug b/tpl/objects/icon.pug index 0e444f9..494abf6 100644 --- a/tpl/objects/icon.pug +++ b/tpl/objects/icon.pug @@ -1,7 +1,12 @@ mixin icon(id) - - - let href = 'icons.svg#' + id - let classes = attributes.class ? attributes.class : '' + - + let href = 'icons.svg#' + id + let classes = { + 'o-icon': true + } + if (attributes.class) { + classes[attributes.class] = true; + } - svg(class=['o-icon', classes] width='1em' height='1em') - use(href=href) + svg(class=classes width='1em' height='1em') + use(href=href) diff --git a/tpl/objects/status-indicator.pug b/tpl/objects/status-indicator.pug index 9b240e1..7ecb08a 100644 --- a/tpl/objects/status-indicator.pug +++ b/tpl/objects/status-indicator.pug @@ -4,5 +4,8 @@ mixin status-indicator(status) 'o-status-indicator': true, } classes['is-' + status] = true + if (attributes.class) { + classes[attributes.class] = true; + } - div(class=classes)&attributes(attributes) + div(class=classes) -- cgit v1.2.3-70-g09d2