// Copyright 2019 The Flutter team. 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 cranePurple700 = Color(0xFF720D5D);
const cranePurple800 = Color(0xFF5D1049);
const cranePurple900 = Color(0xFF4E0D3A);

const craneRed700 = Color(0xFFE30425);

const craneWhite60 = Color(0x99FFFFFF);
const cranePrimaryWhite = Color(0xFFFFFFFF);
const craneErrorOrange = Color(0xFFFF9100);

const craneAlpha = Color(0x00FFFFFF);

const craneGrey = Color(0xFF747474);
const craneBlack = Color(0XFF1E252D);
