DevToolbarButton Class — astro Architecture
Architecture documentation for the DevToolbarButton class in button.ts from the astro codebase.
Entity Profile
Dependency Diagram
graph TD 0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f["DevToolbarButton"] d3ab98c0_1cb3_eac7_2f6c_9333e92bd196["button.ts"] 0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f -->|defined in| d3ab98c0_1cb3_eac7_2f6c_9333e92bd196 9aaefa24_cc9a_798a_ebb6_230263c2d07d["size()"] 0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f -->|method| 9aaefa24_cc9a_798a_ebb6_230263c2d07d 958a9319_cdd9_512f_c5a9_b1ebb372d980["buttonStyle()"] 0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f -->|method| 958a9319_cdd9_512f_c5a9_b1ebb372d980 7e38b273_bee0_b291_7c84_d1dd9205ec13["buttonBorderRadius()"] 0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f -->|method| 7e38b273_bee0_b291_7c84_d1dd9205ec13 1495abd0_bbea_7d52_43a3_6536e47cb235["constructor()"] 0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f -->|method| 1495abd0_bbea_7d52_43a3_6536e47cb235 535a1f50_cd0a_bbe5_529e_7186b9a9a27c["connectedCallback()"] 0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f -->|method| 535a1f50_cd0a_bbe5_529e_7186b9a9a27c c0bc2133_c99b_6451_e7a8_d102fd27fb18["updateStyle()"] 0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f -->|method| c0bc2133_c99b_6451_e7a8_d102fd27fb18 266c2ebd_0d7a_ed4e_7c0d_653c0f0b7e4f["attributeChangedCallback()"] 0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f -->|method| 266c2ebd_0d7a_ed4e_7c0d_653c0f0b7e4f
Relationship Graph
Source Code
packages/astro/src/runtime/client/dev-toolbar/ui-library/button.ts lines 11–179
export class DevToolbarButton extends HTMLElement {
_size: ButtonSize = 'small';
_buttonStyle: ButtonStyle = 'purple';
_buttonBorderRadius: ButtonBorderRadius = 'normal';
get size() {
return this._size;
}
set size(value) {
if (!sizes.includes(value)) {
settings.logger.error(
`Invalid size: ${value}, expected one of ${sizes.join(', ')}, got ${value}.`,
);
return;
}
this._size = value;
this.updateStyle();
}
get buttonStyle() {
return this._buttonStyle;
}
set buttonStyle(value) {
if (!styles.includes(value)) {
settings.logger.error(
`Invalid style: ${value}, expected one of ${styles.join(', ')}, got ${value}.`,
);
return;
}
this._buttonStyle = value;
this.updateStyle();
}
get buttonBorderRadius() {
return this._buttonBorderRadius;
}
set buttonBorderRadius(value) {
if (!borderRadii.includes(value)) {
settings.logger.error(
`Invalid border-radius: ${value}, expected one of ${borderRadii.join(', ')}, got ${value}.`,
);
return;
}
this._buttonBorderRadius = value;
this.updateStyle();
}
static observedAttributes = ['button-style', 'size', 'button-border-radius'];
shadowRoot: ShadowRoot;
constructor() {
super();
this.shadowRoot = this.attachShadow({ mode: 'open' });
this.shadowRoot.innerHTML = `
<style>
button {
--purple-background: rgba(113, 24, 226, 1);
--purple-border: rgba(224, 204, 250, 0.33);
--purple-text: #fff;
--gray-background: rgba(52, 56, 65, 1);
--gray-border: rgba(71, 78, 94, 1);
--gray-text: #fff;
--red-background: rgba(179, 62, 102, 1);
--red-border: rgba(249, 196, 215, 0.33);
--red-text: #fff;
--green-background: rgba(213, 249, 196, 1);
--green-border: rgba(61, 125, 31, 1);
--green-text: #000;
--yellow-background: rgba(255, 236, 179, 1);
--yellow-border: rgba(255, 191, 0, 1);
--yellow-text: #000;
Domain
Source
Frequently Asked Questions
What is the DevToolbarButton class?
DevToolbarButton is a class in the astro codebase, defined in packages/astro/src/runtime/client/dev-toolbar/ui-library/button.ts.
Where is DevToolbarButton defined?
DevToolbarButton is defined in packages/astro/src/runtime/client/dev-toolbar/ui-library/button.ts at line 11.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free