// Copyright 2014 The Cobalt Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#include "cobalt/cssom/keyword_names.h"

namespace cobalt {
namespace cssom {

const char kAbsoluteKeywordName[] = "absolute";
const char kAlternateKeywordName[] = "alternate";
const char kAlternateReverseKeywordName[] = "alternate-reverse";
const char kAquaKeywordName[] = "aqua";
const char kAtKeywordName[] = "at";
const char kAutoKeywordName[] = "auto";
const char kBackwardsKeywordName[] = "backwards";
const char kBaselineKeywordName[] = "baseline";
const char kBlackKeywordName[] = "black";
const char kBlockKeywordName[] = "block";
const char kBlueKeywordName[] = "blue";
const char kBoldKeywordName[] = "bold";
const char kBothKeywordName[] = "both";
const char kBottomKeywordName[] = "bottom";
const char kBreakWordKeywordName[] = "break-word";
const char kCenterKeywordName[] = "center";
const char kCircleKeywordName[] = "circle";
const char kClipKeywordName[] = "clip";
const char kClosestCornerKeywordName[] = "closest-corner";
const char kClosestSideKeywordName[] = "closest-side";
const char kCollapseKeywordName[] = "collapse";
const char kColumnKeywordName[] = "column";
const char kColumnReverseKeywordName[] = "column-reverse";
const char kContainKeywordName[] = "contain";
const char kContentKeywordName[] = "content";
const char kCoverKeywordName[] = "cover";
const char kCurrentColorKeywordName[] = "currentColor";
const char kCursiveKeywordName[] = "cursive";
const char kEaseInKeywordName[] = "ease-in";
const char kEaseInOutKeywordName[] = "ease-in-out";
const char kEaseKeywordName[] = "ease";
const char kEaseOutKeywordName[] = "ease-out";
const char kEllipseKeywordName[] = "ellipse";
const char kEllipsisKeywordName[] = "ellipsis";
const char kEndKeywordName[] = "end";
const char kEquirectangularKeywordName[] = "equirectangular";
const char kFantasyKeywordName[] = "fantasy";
const char kFarthestCornerKeywordName[] = "farthest-corner";
const char kFarthestSideKeywordName[] = "farthest-side";
const char kFixedKeywordName[] = "fixed";
const char kFlexEndKeywordName[] = "flex-end";
const char kFlexKeywordName[] = "flex";
const char kFlexStartKeywordName[] = "flex-start";
const char kForwardsKeywordName[] = "forwards";
const char kFromKeywordName[] = "from";
const char kFuchsiaKeywordName[] = "fuchsia";
const char kGrayKeywordName[] = "gray";
const char kGreenKeywordName[] = "green";
const char kHiddenKeywordName[] = "hidden";
const char kInfiniteKeywordName[] = "infinite";
const char kInheritKeywordName[] = "inherit";
const char kInitialKeywordName[] = "initial";
const char kInlineBlockKeywordName[] = "inline-block";
const char kInlineFlexKeywordName[] = "inline-flex";
const char kInlineKeywordName[] = "inline";
const char kInsetKeywordName[] = "inset";
const char kItalicKeywordName[] = "italic";
const char kLeftKeywordName[] = "left";
const char kLimeKeywordName[] = "lime";
const char kLinearKeywordName[] = "linear";
const char kLineThroughKeywordName[] = "line-through";
const char kMaroonKeywordName[] = "maroon";
const char kMiddleKeywordName[] = "middle";
const char kMonoscopicKeywordName[] = "monoscopic";
const char kMonospaceKeywordName[] = "monospace";
const char kNavyKeywordName[] = "navy";
const char kNoneKeywordName[] = "none";
const char kNoRepeatKeywordName[] = "no-repeat";
const char kNormalKeywordName[] = "normal";
const char kNowrapKeywordName[] = "nowrap";
const char kObliqueKeywordName[] = "oblique";
const char kOliveKeywordName[] = "olive";
const char kPreKeywordName[] = "pre";
const char kPreLineKeywordName[] = "pre-line";
const char kPreWrapKeywordName[] = "pre-wrap";
const char kPurpleKeywordName[] = "purple";
const char kRectangularKeywordName[] = "rectangular";
const char kRedKeywordName[] = "red";
const char kRelativeKeywordName[] = "relative";
const char kRepeatKeywordName[] = "repeat";
const char kRepeatXKeywordName[] = "repeat-x";
const char kRepeatYKeywordName[] = "repeat-y";
const char kReverseKeywordName[] = "reverse";
const char kRightKeywordName[] = "right";
const char kRowKeywordName[] = "row";
const char kRowReverseKeywordName[] = "row-reverse";
const char kSansSerifKeywordName[] = "sans-serif";
const char kScrollKeywordName[] = "scroll";
const char kSerifKeywordName[] = "serif";
const char kSilverKeywordName[] = "silver";
const char kSolidKeywordName[] = "solid";
const char kSpaceAroundKeywordName[] = "space-around";
const char kSpaceBetweenKeywordName[] = "space-between";
const char kStartKeywordName[] = "start";
const char kStaticKeywordName[] = "static";
const char kStepEndKeywordName[] = "step-end";
const char kStepStartKeywordName[] = "step-start";
const char kStereoscopicLeftRightKeywordName[] = "stereoscopic-left-right";
const char kStereoscopicTopBottomKeywordName[] = "stereoscopic-top-bottom";
const char kStretchKeywordName[] = "stretch";
const char kTealKeywordName[] = "teal";
const char kToKeywordName[] = "to";
const char kTopKeywordName[] = "top";
const char kTransparentKeywordName[] = "transparent";
const char kUppercaseKeywordName[] = "uppercase";
const char kVisibleKeywordName[] = "visible";
const char kWhiteKeywordName[] = "white";
const char kWrapKeywordName[] = "wrap";
const char kWrapReverseKeywordName[] = "wrap-reverse";
const char kYellowKeywordName[] = "yellow";

}  // namespace cssom
}  // namespace cobalt
