SlideShare a Scribd company logo
design
tooling
systems⛏
"
@luka5c0m
@ddprrt
design systems
design systems engineering
Sketchmine: Design Systems Tooling
patterns
components
prototypes
and tools…
the sketchmine
a place to scrape diamonds
when did you last ship
a sketchfile into production?
Initial idea
UX + design
Initial idea
UX + design
Initial idea
Sketch lib
UX + design
Initial idea
Product
code
Sketch lib
UX + design
Initial idea
Angular
component lib
Product
code
Sketch lib
UX + design
Initial idea
Angular
component lib
Product
code
Sketch lib
Barista
Design System
UX + design
Initial idea
Angular
component lib
Product
code
Sketch lib
Barista
Design System
UX + design
Initial idea
Angular
component lib
Product
code
Sketch lib
Barista
Design System
UX + design
Initial idea
Angular
component lib
Product
code
Sketch lib
Barista
Design System
UX + design
Initial idea
Angular
component lib
Product
code
Sketch lib
Barista
Design System
UX + design
Initial idea
Angular
component lib
Product
code
Sketch lib
Barista
Design System
Sketchmine: Design Systems Tooling
Angular
component lib
Barista
Design System
Sketch lib
Product
code
UX + design
Sketchmine: Design Systems Tooling
the sketchmine
a place to scrape diamonds
Generating designs

from code d#
Generating designs

from code d#
$➜ yarn global add @sketchmine/sketch-builder
Generating designs

from code d#
$➜ skm-sketch-builder
Sketchmine: Design Systems Tooling
Sketchmine: Design Systems Tooling
So now we can draw

any web page
but what if we want to draw
our components library?
sketch-builder
generates a .sketch file from any website
sketch-builder
app-builder
generates a .sketch file from any website
generates the angular application that can be drawn
sketch-builder
code-analyser
app-builder
generates a .sketch file from any website
generates the angular application that can be drawn
generates an abstract syntax tree out of the component library
sketch-builder
code-analyser
app-builder
angular components
generates a .sketch file from any website
generates the angular application that can be drawn
generates an abstract syntax tree out of the component library
sketch-builder
%&'
sketch-builder
%&'
el.getBoundingClientRect() as DOMRect;
sketch-builder
%&'
const style = getComputedStyle(element);
sketch-builder
(⛏
%&'
background-color: #00A1B2
font-size: 16px
font-family: Bernina Sans
width: auto
height: 32px
text-align: center
const style = getComputedStyle(element);
sketch-builder
app-builder
) %&
app-builder
) %&'
'
'
'
app-builder
) %&'
'
'
'
app-builder
) %&''''
code-analyser export type ButtonVariant = 'primary' | 'secondary' | 'nested';
export type DtButtonThemePalette = 'main' | 'warning' | 'cta';
/**
* Dynatrace design button.
* @design-focusable
*/
@Component({
selector: `button[dt-button], button[dt-icon-button]`,
inputs: ['disabled', 'color'],
})
export class DtButton extends _DtButtonMixinBase
implements CanDisable, CanColor<DtButtonThemePalette> {
@Input()
get variant(): ButtonVariant { ... }
set variant(value: ButtonVariant) { ... }
private _variant: ButtonVariant;
@ContentChildren(DtIcon) _icons: QueryList<DtIcon>;
focus(): void { ... }
private _somePrivateMethod(): void { }
private _yetAnotherPrivateMethod( ...attributes: string[]): boolean { ... }
}
code-analyser export type ButtonVariant = 'primary' | 'secondary' | 'nested';
export type DtButtonThemePalette = 'main' | 'warning' | 'cta';
/**
* Dynatrace design button.
* @design-focusable
*/
@Component({
selector: `button[dt-button], button[dt-icon-button]`,
inputs: ['disabled', 'color'],
})
export class DtButton extends _DtButtonMixinBase
implements CanDisable, CanColor<DtButtonThemePalette> {
@Input()
get variant(): ButtonVariant { ... }
set variant(value: ButtonVariant) { ... }
private _variant: ButtonVariant;
@ContentChildren(DtIcon) _icons: QueryList<DtIcon>;
focus(): void { ... }
private _somePrivateMethod(): void { }
private _yetAnotherPrivateMethod( ...attributes: string[]): boolean { ... }
}
*
variants: [
{
name: “button/disabled”,
changes: [{
type: “property”,
key: “disabled”,
Value: “true”,
}],
}
code-analyser export type ButtonVariant = 'primary' | 'secondary' | 'nested';
export type DtButtonThemePalette = 'main' | 'warning' | 'cta';
/**
* Dynatrace design button.
* @design-focusable
*/
@Component({
selector: `button[dt-button], button[dt-icon-button]`,
inputs: ['disabled', 'color'],
})
export class DtButton extends _DtButtonMixinBase
implements CanDisable, CanColor<DtButtonThemePalette> {
@Input()
get variant(): ButtonVariant { ... }
set variant(value: ButtonVariant) { ... }
private _variant: ButtonVariant;
@ContentChildren(DtIcon) _icons: QueryList<DtIcon>;
focus(): void { ... }
private _somePrivateMethod(): void { }
private _yetAnotherPrivateMethod( ...attributes: string[]): boolean { ... }
}
+
}, {
name: “button/primary/default”,
changes: [{
type: “property”,
key: “variant”,
value: “”primary””,
}],
}
…
component: ‘DtButton’,
selector: ‘button[dt-button]’
*
%&)*
'
'
%&)* ''
Sketchmine: Design Systems Tooling
Sketchmine: Design Systems Tooling
Sketchmine: Design Systems Tooling
a pure example ,
the generated library -
can I work with the library?
So which other tools are in
the mine?
So which other tools are in
the mine?
Sketchmine: Design Systems Tooling
validating our
designs
.
Sketch Validation
validating our
designs
.
Sketch Validation
let’s / it ☝
%&)*'
%&)* ''
⛏
honorable mentions
Sketchmine: Design Systems Tooling
Sketchmine: Design Systems Tooling
Sketchmine: Design Systems Tooling
Slide about usKatrin Freihofner

@Ka_TriN_F
devone.at
need that?
https://github.com/Dynatrace/sketchmine
@luka5c0m
npm @sketchmine
@ddprrt

More Related Content

PPTX
Chapter 3 - part1
PDF
Type level programming in Scala
PDF
Introduction to interactive data visualisation using R Shiny
PPTX
shiny_v1.pptx
PDF
Writing videogames with titanium appcelerator
PPT
11MappingDesigntoCode.ppt Software engineering
PPT
11MappingDesigntoCode.ppt ooad software software
PDF
Architecture for scalable Angular applications (with introduction and extende...
Chapter 3 - part1
Type level programming in Scala
Introduction to interactive data visualisation using R Shiny
shiny_v1.pptx
Writing videogames with titanium appcelerator
11MappingDesigntoCode.ppt Software engineering
11MappingDesigntoCode.ppt ooad software software
Architecture for scalable Angular applications (with introduction and extende...

Similar to Sketchmine: Design Systems Tooling (20)

PPTX
Building a TV show with Angular, Bootstrap, and Web Services
PPTX
Using prime[31] to connect your unity game to azure mobile services
PDF
Web components with Angular
PDF
How to create an Angular builder
PDF
C++ in the 21st Century
PPTX
Tools and practices for rapid application development
PDF
AutoDesk Inventor Basics at TechShop
PDF
MOPCON 2014 - Best software architecture in app development
PPTX
Get together on getting more out of typescript &amp; angular 2
PPT
(OOAD) UML Slides
PDF
Introduction to the iconipy Package - Create Icons from Python Code.pdf
PDF
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
PDF
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
PDF
Vue.js slots.pdf
PDF
Lecture 2: C# Programming for VR application in Unity
PDF
Dash Intro.pdf
PDF
iOS 7 SDK特訓班
PPTX
GitIndex e SourceServer
PDF
React Native custom components
PDF
The fundamental problems of GUI applications and why people choose React
Building a TV show with Angular, Bootstrap, and Web Services
Using prime[31] to connect your unity game to azure mobile services
Web components with Angular
How to create an Angular builder
C++ in the 21st Century
Tools and practices for rapid application development
AutoDesk Inventor Basics at TechShop
MOPCON 2014 - Best software architecture in app development
Get together on getting more out of typescript &amp; angular 2
(OOAD) UML Slides
Introduction to the iconipy Package - Create Icons from Python Code.pdf
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Vue.js slots.pdf
Lecture 2: C# Programming for VR application in Unity
Dash Intro.pdf
iOS 7 SDK特訓班
GitIndex e SourceServer
React Native custom components
The fundamental problems of GUI applications and why people choose React
Ad

More from Stefan Baumgartner (13)

PDF
WASM! WASI! WAGI! WAT?
PDF
Serverless Rust
PDF
What TypeScript taught me about JavaScript
PDF
Real-world component libraries at scale
PDF
Jamstack on Azure
PDF
TypeScript's Type System
PDF
The hero's journey
PDF
Automating UI development
PDF
A hero's journey in JavaScript frameworks
PDF
[German] Ab mit dem Kopf!
PDF
Advanced JavaScript build pipelines using Gulp.js
PDF
Speed Index, explained!
PDF
Plumbin Pipelines - A Gulp.js workshop
WASM! WASI! WAGI! WAT?
Serverless Rust
What TypeScript taught me about JavaScript
Real-world component libraries at scale
Jamstack on Azure
TypeScript's Type System
The hero's journey
Automating UI development
A hero's journey in JavaScript frameworks
[German] Ab mit dem Kopf!
Advanced JavaScript build pipelines using Gulp.js
Speed Index, explained!
Plumbin Pipelines - A Gulp.js workshop
Ad

Recently uploaded (20)

PPTX
Current and future trends in Computer Vision.pptx
PPTX
UNIT 4 Total Quality Management .pptx
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
OOP with Java - Java Introduction (Basics)
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
additive manufacturing of ss316l using mig welding
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPTX
Internet of Things (IOT) - A guide to understanding
PDF
Well-logging-methods_new................
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PPTX
Safety Seminar civil to be ensured for safe working.
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
Current and future trends in Computer Vision.pptx
UNIT 4 Total Quality Management .pptx
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
OOP with Java - Java Introduction (Basics)
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
CYBER-CRIMES AND SECURITY A guide to understanding
additive manufacturing of ss316l using mig welding
Foundation to blockchain - A guide to Blockchain Tech
Internet of Things (IOT) - A guide to understanding
Well-logging-methods_new................
Automation-in-Manufacturing-Chapter-Introduction.pdf
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
Safety Seminar civil to be ensured for safe working.
Operating System & Kernel Study Guide-1 - converted.pdf
Embodied AI: Ushering in the Next Era of Intelligent Systems
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx

Sketchmine: Design Systems Tooling