// Copyright 2014 Google Inc. 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 kContainKeywordName[] = "contain";
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 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 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 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 kSansSerifKeywordName[] = "sans-serif";
const char kSerifKeywordName[] = "serif";
const char kSilverKeywordName[] = "silver";
const char kSolidKeywordName[] = "solid";
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 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 kYellowKeywordName[] = "yellow";

}  // namespace cssom
}  // namespace cobalt
