// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:flutter/material.dart';

const Color kShrinePink50 = Color(0xFFFEEAE6);
const Color kShrinePink100 = Color(0xFFFEDBD0);
const Color kShrinePink300 = Color(0xFFFBB8AC);
const Color kShrinePink400 = Color(0xFFEAA4A4);

const Color kShrineBrown900 = Color(0xFF442B2D);
const Color kShrineBrown600 = Color(0xFF7D4F52);

const Color kShrineErrorRed = Color(0xFFC5032B);

const Color kShrineSurfaceWhite = Color(0xFFFFFBFA);
const Color kShrineBackgroundWhite = Colors.white;
