/proto · theme.proto

theme.proto

Messages
9
Enums
0
Fields
42
Source
1.6 KB
Imports
0
ThemeTypography message · 4 fields
# label type name notes
1 single FontFamily font_family
2 single map<string,uint32> font_size_ref_id
3 single map<string,int32> font_weight
4 single map<string,uint32> line_height_ref_id
ThemeTypography. FontFamily message · 3 fields
# label type name notes
1 single uint32 heading_ref_id
2 single uint32 body_ref_id
3 single uint32 mono_ref_id
ThemeColors message · 9 fields
# label type name notes
1 single uint32 primary_ref_id
2 single uint32 secondary_ref_id
3 single uint32 accent_ref_id
4 single uint32 background_ref_id
5 single uint32 surface_ref_id
6 single TextColors text
7 single uint32 border_ref_id
8 single uint32 shadow_ref_id
9 repeated PaletteEntry palette
ThemeColors. TextColors message · 3 fields
# label type name notes
1 single uint32 primary_ref_id
2 single uint32 secondary_ref_id
3 single uint32 accent_ref_id
ThemeColors. PaletteEntry message · 3 fields
# label type name notes
1 single uint32 ref_id
2 single uint32 order
3 single uint32 color_ref_id
ThemeElementDefaults message · 2 fields
# label type name notes
1 single TextDefaults text
2 single HeadingDefaults heading
ThemeElementDefaults. TextDefaults message · 5 fields
# label type name notes
1 single uint32 font_size_ref_id
2 single uint32 font_family_ref_id
3 single uint32 color_ref_id
4 single uint32 line_height_ref_id
5 single int32 font_weight
ThemeElementDefaults. HeadingDefaults message · 5 fields
# label type name notes
1 single uint32 font_size_ref_id
2 single uint32 font_family_ref_id
3 single uint32 color_ref_id
4 single uint32 line_height_ref_id
5 single int32 font_weight
Theme message · 8 fields
# label type name notes
1 single uint32 id
2 optional string name
3 optional string description
4 single ThemeColors colors
5 single ThemeTypography typography
6 single ThemeElementDefaults element_defaults
7 single map<string,uint32> spacing_ref_id
8 single map<string,uint32> border_radius_ref_id

§Raw schema

syntax = "proto3";

package eddocu.theme.v3;

message ThemeTypography {
  message FontFamily {
    uint32 heading_ref_id = 1;
    uint32 body_ref_id = 2;
    uint32 mono_ref_id = 3;
  }

  FontFamily font_family = 1;
  map<string, uint32> font_size_ref_id = 2;
  map<string, int32> font_weight = 3;
  map<string, uint32> line_height_ref_id = 4;
}

message ThemeColors {
  uint32 primary_ref_id = 1;
  uint32 secondary_ref_id = 2;
  uint32 accent_ref_id = 3;
  uint32 background_ref_id = 4;
  uint32 surface_ref_id = 5;

  message TextColors {
    uint32 primary_ref_id = 1;
    uint32 secondary_ref_id = 2;
    uint32 accent_ref_id = 3;
  }
  TextColors text = 6;

  uint32 border_ref_id = 7;
  uint32 shadow_ref_id = 8;

  message PaletteEntry {
    uint32 ref_id = 1;
    uint32 order = 2;
    uint32 color_ref_id = 3;
  }
  repeated PaletteEntry palette = 9;
}

message ThemeElementDefaults {
  message TextDefaults {
    uint32 font_size_ref_id = 1;
    uint32 font_family_ref_id = 2;
    uint32 color_ref_id = 3;
    uint32 line_height_ref_id = 4;
    int32 font_weight = 5;
  }
  TextDefaults text = 1;

  message HeadingDefaults {
    uint32 font_size_ref_id = 1;
    uint32 font_family_ref_id = 2;
    uint32 color_ref_id = 3;
    uint32 line_height_ref_id = 4;
    int32 font_weight = 5;
  }
  HeadingDefaults heading = 2;
}

message Theme {
  uint32 id = 1;
  optional string name = 2;
  optional string description = 3;

  ThemeColors colors = 4;
  ThemeTypography typography = 5;
  ThemeElementDefaults element_defaults = 6;

  map<string, uint32> spacing_ref_id = 7;
  map<string, uint32> border_radius_ref_id = 8;
}