/*
 * 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 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
