Crates.io | unflow |
lib.rs | unflow |
version | 0.1.1 |
source | src |
created_at | 2021-05-08 09:19:44.995258 |
updated_at | 2021-05-11 15:01:50.923888 |
description | Unflow is a DSL to convert design to code. |
homepage | https://github.com/inherd/unflow |
repository | https://github.com/inherd/unflow |
max_upload_size | |
id | 394819 |
size | 970,229 |
Design as code
Todos:
DSL -> DSL Parser -> DSL Json ---pipe---> Node.js -> Sketch
Task Flows / User Flows Example
flow login {
SEE HomePage
DO [Click] "Login".Button
REACT Success: SHOW "Login Success".Toast with ANIMATE(bounce)
REACT Failure: SHOW "Login Failure".Dialog
SEE "Login Failure".Dialog
DO [Click] "ForgotPassword".Button
REACT: GOTO ForgotPasswordPage
SEE ForgotPasswordPage
DO [Click] "RESET PASSWORD".Button
REACT: SHOW "Please Check Email".Message
}
Elements
page HomePage {
LayoutGrid: 12x
LayoutId: HomePage
Router: "/home"
}
component Navigation {
LayoutId: Navigation
}
component TitleComponent {}
component ImageComponent {
Size: 1080px
}
component BlogList {
BlogDetail, Space8
BlogDetail, Space8
BlogDetail, Space8
BlogDetail, Space8
BlogDetail, Space8
BlogDetail, Space8
}
Layout Examples:
Layout HomePage {
--------------------------
| Navigation(RIGHT) |
--------------------------
| Empty(2x) | TitleComponent | Empty(2x) |
--------------------------
| ImageComponent |
--------------------------
| BlogList(8x) | Archives(2x) |
--------------------------
| Footer |
--------------------------
}
Layout Navigation {
--------------------------------------
| "home" |"detail" | Button("Login") |
--------------------------------------
}
Library Define Examples
library FontSize {
H1 = 18px
H2 = 16px
H3 = 14px
H4 = 12px
H5 = 10px
}
library Color {
Primary {
label = "Primary"
value = "#E53935"
}
Secondary {
label = "Blue"
value = "#1E88E5"
}
}
library Button {
Default [
FontSize.H2, Color.Primary
]
Primary [
FontSize.H2, Color.Primary
]
}
Refs: AutoLayout.js, Apple's Auto Layout, Visual Format Language
code based on: https://github.com/phodal/design
This code is distributed under the MIT license. See LICENSE
in this directory.