// File generated by Dart CSS from source file swarm.scss
// Do not edit.

// @dart = 2.9

part of swarmlib;

class CSS {
  // CSS class selectors:
  static const String HBOX = 'hbox';
  static const String VBOX = 'vbox';
  static const String CENTER = 'center';
  static const String PAGED_CONTENT = 'paged-content';
  static const String FULLPAGE = 'fullpage';
  static const String FLEX_ITEM = 'flex-item';
  static const String FLEX = 'flex';
  static const String CONVEYOR_VIEW = 'conveyor-view';
  static const String CONVEYOR_ITEM = 'conveyor-item';
  static const String CONVEYOR_VIEW_CONTAINER = 'conveyor-view-container';
  static const String PAGED_COLUMN_CONTAINER = 'paged-column-container';
  static const String PAGED_COLUMN = 'paged-column';
  static const String PAGE_NUMBER_LEFT = 'page-number-left';
  static const String PAGE_NUMBER_LABEL = 'page-number-label';
  static const String PAGE_NUMBER_RIGHT = 'page-number-right';
  static const String SM_ITEM = 'sm-item';
  static const String SM_ITEM_BOX = 'sm-item-box';
  static const String SM_ROOT = 'sm-root';
  static const String HIDDEN = 'hidden';
  static const String SEL = 'sel';
  static const String SM_SLIDER_BOX = 'sm-slider-box';
  static const String SM_TRIANGLE = 'sm-triangle';
  static const String INVISIBLE = 'invisible';
  static const String TOUCH_SCROLLBAR = 'touch-scrollbar';
  static const String DRAG = 'drag';
  static const String TOUCH_SCROLLBAR_VERTICAL = 'touch-scrollbar-vertical';
  static const String TOUCH_SCROLLBAR_HORIZONTAL = 'touch-scrollbar-horizontal';
  static const String FRONT_VIEW = 'front-view';
  static const String BOTTOM_VIEW = 'bottom-view';
  static const String TOP_VIEW = 'top-view';
  static const String QUERY = 'query';
  static const String QUERY_NAME_SHADOW = 'query-name-shadow';
  static const String SECTION_VIEW = 'section-view';
  static const String LOADING_SECTION = 'loading-section';
  static const String STORY_SECTION = 'story-section';
  static const String STORY = 'story';
  static const String SNIPPET = 'snippet';
  static const String TITLE = 'title';
  static const String NO_THUMB = 'no-thumb';
  static const String BYLINE = 'byline';
  static const String STORY_SHADOW = 'story-shadow';
  static const String DATELINE = 'dateline';
  static const String STORY_UNREAD = 'story-unread';
  static const String TEXT = 'text';
  static const String CAPTION = 'caption';
  static const String STORY_VIEW = 'story-view';
  static const String PAGE_NUMBER = 'page-number';
  static const String STORY_CONTENT = 'story-content';
  static const String STORY_IMAGE = 'story-image';
  static const String STORY_TEXT_VIEW = 'story-text-view';
  static const String STORY_HEADER = 'story-header';
  static const String STORY_TITLE = 'story-title';
  static const String STORY_BYLINE = 'story-byline';
  static const String STORY_DATELINE = 'story-dateline';
  static const String HEADER_VIEW = 'header-view';
  static const String APP_TITLE = 'app-title';
  static const String IN_STORY = 'in-story';
  static const String BACK_ARROW = 'back-arrow';
  static const String CONFIG = 'config';
  static const String REFRESH = 'refresh';
  static const String INFO_BUTTON = 'info-button';
  static const String NEW_WINDOW_BUTTON = 'new-window-button';
  static const String WEB_BACK_BUTTON = 'web-back-button';
  static const String WEB_FORWARD_BUTTON = 'web-forward-button';
  static const String WEB_VIEW_BUTTON = 'web-view-button';
  static const String TEXT_VIEW_BUTTON = 'text-view-button';
  static const String ACTIVE = 'active';
  static const String BUTTON = 'button';
  static const String DATA_SOURCE_VIEW = 'data-source-view';
  static const String DIALOG_MODAL = 'dialog-modal';
  static const String DIALOG = 'dialog';
  static const String DIALOG_TITLE_AREA = 'dialog-title-area';
  static const String DIALOG_TITLE = 'dialog-title';
  static const String DIALOG_BODY = 'dialog-body';
  static const String DONE_BUTTON = 'done-button';
  static const String HIDDEN_STORY = 'hidden-story';
  static const String HEADER_BACKGROUND = 'header-background';
  static const String HEADER = 'header';
  static const String SPLASH = 'splash';
  static const String FOOTER = 'footer';
  static const String SPLASHIMG = 'splashImg';
  static const String HIDE_ALL_QUERIES = 'hide-all-queries';
  static const String TRANSPARENT = 'transparent';
}
