demo_shader_editor/colors.rs
1//! Semantic pin colors for the shader_editor demo.
2//!
3//! Colors are organized by GLSL/WGSL data type for consistent visual language.
4
5use iced::Color;
6
7// === Pin Data Type Markers ===
8// These marker types are used with the pin system for TypeId-based matching
9
10/// Scalar float data type marker
11pub struct Float;
12
13/// 2D vector data type marker
14pub struct Vec2;
15
16/// 3D vector data type marker
17pub struct Vec3;
18
19/// 4D vector / RGBA data type marker
20pub struct Vec4;
21
22/// Boolean data type marker
23pub struct Bool;
24
25/// Integer data type marker
26pub struct Int;
27
28// === Socket Type Colors ===
29
30/// Scalar float values
31pub const SOCKET_FLOAT: Color = Color::from_rgb(0.6, 0.8, 0.6); // Light green
32
33/// 2D vector (UV coordinates)
34pub const SOCKET_VEC2: Color = Color::from_rgb(0.6, 0.8, 0.9); // Light cyan
35
36/// 3D vector (positions, normals)
37pub const SOCKET_VEC3: Color = Color::from_rgb(0.9, 0.8, 0.5); // Light yellow
38
39/// 4D vector / RGBA colors
40pub const SOCKET_VEC4: Color = Color::from_rgb(0.9, 0.6, 0.7); // Light pink
41
42/// Boolean values
43pub const SOCKET_BOOL: Color = Color::from_rgb(0.9, 0.5, 0.5); // Light red
44
45/// Integer values
46pub const SOCKET_INT: Color = Color::from_rgb(0.7, 0.7, 0.9); // Light purple
47
48// === UI Colors ===
49
50/// Muted text color
51pub const TEXT_MUTED: Color = Color::from_rgb(0.6, 0.6, 0.6);
52
53// === Spacing Constants ===
54
55/// Spacing between pin rows
56pub const SPACING_PIN: f32 = 6.0;