Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A visual UI builder for TFT_eSPI & U8g2 displays. design your interface, export working Arduino code.

License

NotificationsYou must be signed in to change notification settings

cifertech/DisplayKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


🎨 DisplayKit

DisplayKit is a modern web-based drag-and-drop UI designer for embedded display development.

Design screens visually → generate cleanArduino drawing code → run it on boards likeESP32 / ESP8266 / STM32 / Arduino / RP2040 (and more).

Quick start

  • Use it online: click the GitHub Pages link in the repository, or open:https://cifertech.github.io/DisplayKit/

How to use

  • Pick display driver: chooseTFT_eSPI orU8g2 OLED from the sidebar (and set your display resolution)
  • Create screens: add as many as you like and name the generated function (e.g.drawHomeScreen)
  • Add elements: click an element type to add it, then drag / resize and edit properties
  • Export:
    • Copy the generated code from “Generated Code (TFT_eSPI / U8g2)”
    • Export JSON to save a project snapshot (great for versioning)
    • Import JSON to restore a saved project

Built-in tools

DisplayKit includes tool pages undertools/ and can open them inside the app overlay:

  • PixelForge (tools/pixelforge/): image converter (generate RGB565 headers and import into DisplayKit)
  • BitCanvas Studio (tools/bitcanvas-studio/): animation tool (export and copy to clipboard)
  • Shared tool theming:tools/theme.css keeps tool pages visually consistent with DisplayKit

Keyboard shortcuts

  • Undo / Redo:Ctrl/Cmd + Z /Ctrl/Cmd + Shift + Z
  • Duplicate:Ctrl/Cmd + D
  • Cycle selection:Tab /Shift + Tab
  • Align selected:Ctrl/Cmd + 1..6 (left / center / right / top / middle / bottom)
  • Move selected: Arrow keys (holdShift for bigger steps)
  • Delete selected:Delete /Backspace
  • Close Tools overlay:Esc

🚀 Features

🖥 Multi-screen UI builder

  • Createmultiple screens and switch between them
  • Auto-generates a draw function per screen (e.g.drawHomeScreen())
  • Per-screen element lists (clear/reset a single screen without touching others)

🖥 Display driver modes

  • TFT_eSPI mode: full-color UI preview + Arduino code generation
  • U8g2 OLED mode: OLED-style preview + U8g2 code generation
  • Built-in display settings:
    • TFT: rotation (plus UI options for color depth / backlight / touch metadata)
    • OLED: preset constructors (I2C/SPI), rotation, contrast, flip mode, font mode, power save

🧱 Drag-and-drop elements

  • Shapes: Rect, RoundRect, Circle, Line, Divider
  • UI: Label, Button, Header, Card
  • Controls: Progress, Slider, Toggle
  • Images:
    • Import PNG/JPG into the canvas (stored internally as RGB565 for TFT workflows)
    • Preview images inside the editor

🧰 Editor workflow & productivity

  • Undo / Redo history
  • Duplicate elements
  • Resize handles (most elements) + drag to position
  • Snap-to-grid + configurable grid size
  • Zoom (50–200%)
  • Background presets + custom background color
  • JSON projectExport / Import

🧩 Built-in tools (inside the app)

  • PixelForge (image converter) and BitCanvas Studio (animation) can open in an in-app overlay
  • Theme sync between DisplayKit and embedded tools (light/dark)

⚙ Code output

TFT_eSPI

  • Generates:fillRect,fillRoundRect /drawRoundRect,fillCircle,drawLine, text primitives, etc.
  • OptionalTFT_eSprite rendering (Use sprite toggle)
  • RGB565 image arrays inPROGMEM +pushImage()

U8g2

  • Generates:drawBox,drawRBox / frames,drawDisc / circles,drawLine, etc.
  • Font selection per text element + emitsu8g2.setFont(...)
  • Note:image elements are currently not emitted in the U8g2 sample code output

🔌 Actions & navigation hooks

  • Elements can be assigned an “On click → Go to screen…” action in the editor
  • Code output keeps drawing code focused; touch/click wiring is left for you to implement in your input loop

 

🛠 Compatibility

Display LibraryStatusNotes
TFT_eSPI✅ FullRGB565, sprites, images, colors
U8g2✅ FullMonochrome + full font system
Adafruit_GFX⚠ PlannedNot implemented yet

Project structure

.├─ index.html        # Main app UI├─ style.css         # Main app styling├─ app.js            # App logic (editor + code generation)└─ tools/   ├─ pixelforge/       # Image converter tool   ├─ bitcanvas-studio/ # Animation tool   └─ theme.css         # Shared theme tokens for tool pages

🤝 Contribute

Want to help make DisplayKit better?

  • Submit bug reports
  • Suggest new features
  • Improve documentation
  • Contribute code or UI elements
  • Star ⭐ and share the project

Every contribution helps. Thank you! ❤️

About

A visual UI builder for TFT_eSPI & U8g2 displays. design your interface, export working Arduino code.

Topics

Resources

License

Stars

Watchers

Forks


[8]ページ先頭

©2009-2025 Movatter.jp