Package button

import "gitlab.com/zoralab/bissetii/pkg/components/internal/button"

Package button is for render the input button in multiple formats.

The HTML template codes are written in Go’s string format under the corresponding group. This allows one to embed the HTML codes instead of parsing it from file.

Constants

Constants for managing the package as a whole.

const (
	// Name is the block name (`{{- define "this-name" -}}`).
	Name = "button"

	// AMPName is the AMP HTML block name.
	AMPName = root.AMPPrefix + Name

	// ParametersComment are the list of comment headers
	// describing inputs.
	ParametersComment = `
{{- /* .ID                = Form id attribute (optional)            */ -}}
{{- /* .Class             = Form class attribute (optional)         */ -}}
`
)

Dependencies are the dependent codes for building independent template.

This is useful for rendering portable template usage like Hugo partials where they do not share a common definition source.

const (
	// DepHTML is the vanilla HTML output type.
	DepHTML = ``

	// DepAMPHTML is the Accelerated Mobile Pages HTML output
	// type.
	DepAMPHTML = ``
)

Full HTML codes for rendering templates without needing to parse file.

const (
	// HTML is the vanilla HTML output type.
	HTML = ``

	// AMPHTML is the Accelerated Mobile Pages HTML output type.
	AMPHTML = ``
)

All Bissetii Compressed Compiled CSS

const (
	CSSAMP = `input[type=button],input[type=reset],input[type=submit],button,.button{display:var(--button-display);opacity:var(--button-opacity);margin:var(--button-margin);padding:var(--button-padding);border-width:var(--button-border-width);border-style:var(--button-border-style);border-radius:var(--button-border-radius);color:var(--button-color);background:var(--button-background);border-color:var(--button-border-color);font-size:var(--button-font-size);font-weight:var(--button-font-weight);letter-spacing:var(--button-letter-spacing);text-align:var(--button-text-align);text-decoration:var(--button-text-decoration);text-transform:var(--button-text-transform);overflow-wrap:var(--button-overflow-wrap);word-break:var(--button-word-break);-webkit-transition:var(--button-transition);-ms-transition:var(--button-transition);-moz-transition:var(--button-transition);-o-transition:var(--button-transition);transition:var(--button-transition);position:relative}input[type=button]::before,input[type=button]::after,input[type=reset]::before,input[type=reset]::after,input[type=submit]::before,input[type=submit]::after,button::before,button::after,.button::before,.button::after{content:"";position:absolute;top:calc(var(--button-border-width) * -1);left:calc(var(--button-border-width) * -1);width:100%;height:100%;background:transparent}input[type=button]::after,input[type=reset]::after,input[type=submit]::after,button::after,.button::after{opacity:0;transform:scaleX(1.25) scaleY(1.5);transition:transform .5s,opacity .5s;border-width:var(--button-border-width);border-style:var(--button-border-style);border-radius:var(--button-border-radius);border-color:var(--button-border-color-focus)}input[type=button].clean,input[type=button].outline,input[type=reset].clean,input[type=reset].outline,input[type=submit].clean,input[type=submit].outline,button.clean,button.outline,.button.clean,.button.outline{--button-color:var(--button-color-invert);--button-background:transparent;--button-border-color:var(--button-color-invert)}input[type=button].clean,input[type=reset].clean,input[type=submit].clean,button.clean,.button.clean{--button-border-color:transparent}input[type=button]:focus:not(:disabled),input[type=button].outline:focus:not(:disabled),input[type=button].clean:focus:not(:disabled),input[type=button]:hover:not(:disabled),input[type=button].outline:hover:not(:disabled),input[type=button].clean:hover:not(:disabled),input[type=reset]:focus:not(:disabled),input[type=reset].outline:focus:not(:disabled),input[type=reset].clean:focus:not(:disabled),input[type=reset]:hover:not(:disabled),input[type=reset].outline:hover:not(:disabled),input[type=reset].clean:hover:not(:disabled),input[type=submit]:focus:not(:disabled),input[type=submit].outline:focus:not(:disabled),input[type=submit].clean:focus:not(:disabled),input[type=submit]:hover:not(:disabled),input[type=submit].outline:hover:not(:disabled),input[type=submit].clean:hover:not(:disabled),button:focus:not(:disabled),button.outline:focus:not(:disabled),button.clean:focus:not(:disabled),button:hover:not(:disabled),button.outline:hover:not(:disabled),button.clean:hover:not(:disabled),.button:focus:not(:disabled),.button.outline:focus:not(:disabled),.button.clean:focus:not(:disabled),.button:hover:not(:disabled),.button.outline:hover:not(:disabled),.button.clean:hover:not(:disabled){color:var(--button-color-focus);background:var(--button-background-focus);border-color:var(--button-border-color-focus)}input[type=button]:focus:not(:disabled)::after,input[type=button].outline:focus:not(:disabled)::after,input[type=button].clean:focus:not(:disabled)::after,input[type=button]:hover:not(:disabled)::after,input[type=button].outline:hover:not(:disabled)::after,input[type=button].clean:hover:not(:disabled)::after,input[type=reset]:focus:not(:disabled)::after,input[type=reset].outline:focus:not(:disabled)::after,input[type=reset].clean:focus:not(:disabled)::after,input[type=reset]:hover:not(:disabled)::after,input[type=reset].outline:hover:not(:disabled)::after,input[type=reset].clean:hover:not(:disabled)::after,input[type=submit]:focus:not(:disabled)::after,input[type=submit].outline:focus:not(:disabled)::after,input[type=submit].clean:focus:not(:disabled)::after,input[type=submit]:hover:not(:disabled)::after,input[type=submit].outline:hover:not(:disabled)::after,input[type=submit].clean:hover:not(:disabled)::after,button:focus:not(:disabled)::after,button.outline:focus:not(:disabled)::after,button.clean:focus:not(:disabled)::after,button:hover:not(:disabled)::after,button.outline:hover:not(:disabled)::after,button.clean:hover:not(:disabled)::after,.button:focus:not(:disabled)::after,.button.outline:focus:not(:disabled)::after,.button.clean:focus:not(:disabled)::after,.button:hover:not(:disabled)::after,.button.outline:hover:not(:disabled)::after,.button.clean:hover:not(:disabled)::after{opacity:1;transform:scaleX(1) scaleY(1)}input[type=button][disabled],input[type=button].disabled,input[type=reset][disabled],input[type=reset].disabled,input[type=submit][disabled],input[type=submit].disabled,button[disabled],button.disabled,.button[disabled],.button.disabled{pointer-events:none;opacity:var(--button-opacity-disabled)}`

	CSSCritical = `input[type=button],input[type=reset],input[type=submit],button,.button{display:var(--button-display);opacity:var(--button-opacity);margin:var(--button-margin);padding:var(--button-padding);border-width:var(--button-border-width);border-style:var(--button-border-style);border-radius:var(--button-border-radius);color:var(--button-color);background:var(--button-background);border-color:var(--button-border-color);font-size:var(--button-font-size);font-weight:var(--button-font-weight);letter-spacing:var(--button-letter-spacing);text-align:var(--button-text-align);text-decoration:var(--button-text-decoration);text-transform:var(--button-text-transform);overflow-wrap:var(--button-overflow-wrap);word-break:var(--button-word-break);-webkit-transition:var(--button-transition);-ms-transition:var(--button-transition);-moz-transition:var(--button-transition);-o-transition:var(--button-transition);transition:var(--button-transition);position:relative}input[type=button]::before,input[type=button]::after,input[type=reset]::before,input[type=reset]::after,input[type=submit]::before,input[type=submit]::after,button::before,button::after,.button::before,.button::after{content:"";position:absolute;top:calc(var(--button-border-width) * -1);left:calc(var(--button-border-width) * -1);width:100%;height:100%;background:transparent}input[type=button]::after,input[type=reset]::after,input[type=submit]::after,button::after,.button::after{opacity:0;transform:scaleX(1.25) scaleY(1.5);transition:transform .5s,opacity .5s;border-width:var(--button-border-width);border-style:var(--button-border-style);border-radius:var(--button-border-radius);border-color:var(--button-border-color-focus)}input[type=button].clean,input[type=button].outline,input[type=reset].clean,input[type=reset].outline,input[type=submit].clean,input[type=submit].outline,button.clean,button.outline,.button.clean,.button.outline{--button-color:var(--button-color-invert);--button-background:transparent;--button-border-color:var(--button-color-invert)}input[type=button].clean,input[type=reset].clean,input[type=submit].clean,button.clean,.button.clean{--button-border-color:transparent}input[type=button]:focus:not(:disabled),input[type=button].outline:focus:not(:disabled),input[type=button].clean:focus:not(:disabled),input[type=button]:hover:not(:disabled),input[type=button].outline:hover:not(:disabled),input[type=button].clean:hover:not(:disabled),input[type=reset]:focus:not(:disabled),input[type=reset].outline:focus:not(:disabled),input[type=reset].clean:focus:not(:disabled),input[type=reset]:hover:not(:disabled),input[type=reset].outline:hover:not(:disabled),input[type=reset].clean:hover:not(:disabled),input[type=submit]:focus:not(:disabled),input[type=submit].outline:focus:not(:disabled),input[type=submit].clean:focus:not(:disabled),input[type=submit]:hover:not(:disabled),input[type=submit].outline:hover:not(:disabled),input[type=submit].clean:hover:not(:disabled),button:focus:not(:disabled),button.outline:focus:not(:disabled),button.clean:focus:not(:disabled),button:hover:not(:disabled),button.outline:hover:not(:disabled),button.clean:hover:not(:disabled),.button:focus:not(:disabled),.button.outline:focus:not(:disabled),.button.clean:focus:not(:disabled),.button:hover:not(:disabled),.button.outline:hover:not(:disabled),.button.clean:hover:not(:disabled){color:var(--button-color-focus);background:var(--button-background-focus);border-color:var(--button-border-color-focus)}input[type=button]:focus:not(:disabled)::after,input[type=button].outline:focus:not(:disabled)::after,input[type=button].clean:focus:not(:disabled)::after,input[type=button]:hover:not(:disabled)::after,input[type=button].outline:hover:not(:disabled)::after,input[type=button].clean:hover:not(:disabled)::after,input[type=reset]:focus:not(:disabled)::after,input[type=reset].outline:focus:not(:disabled)::after,input[type=reset].clean:focus:not(:disabled)::after,input[type=reset]:hover:not(:disabled)::after,input[type=reset].outline:hover:not(:disabled)::after,input[type=reset].clean:hover:not(:disabled)::after,input[type=submit]:focus:not(:disabled)::after,input[type=submit].outline:focus:not(:disabled)::after,input[type=submit].clean:focus:not(:disabled)::after,input[type=submit]:hover:not(:disabled)::after,input[type=submit].outline:hover:not(:disabled)::after,input[type=submit].clean:hover:not(:disabled)::after,button:focus:not(:disabled)::after,button.outline:focus:not(:disabled)::after,button.clean:focus:not(:disabled)::after,button:hover:not(:disabled)::after,button.outline:hover:not(:disabled)::after,button.clean:hover:not(:disabled)::after,.button:focus:not(:disabled)::after,.button.outline:focus:not(:disabled)::after,.button.clean:focus:not(:disabled)::after,.button:hover:not(:disabled)::after,.button.outline:hover:not(:disabled)::after,.button.clean:hover:not(:disabled)::after{opacity:1;transform:scaleX(1) scaleY(1)}input[type=button][disabled],input[type=button].disabled,input[type=reset][disabled],input[type=reset].disabled,input[type=submit][disabled],input[type=submit].disabled,button[disabled],button.disabled,.button[disabled],.button.disabled{pointer-events:none;opacity:var(--button-opacity-disabled)}`

	CSSTablet = ``

	CSSDesktop = ``

	CSSWidescreen = ``

	CSSPrint = ``
)

Data

type Data struct {
	ID    string
	Class string
}

Data is the data structure for rendering the component.