blob: a8d6e9a0221a74563ea8752f373aa28095dbdbf8 [file] [log] [blame]
# Copyright 2021 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import re
import sys
class Opacity:
'''A representation of a single color value.
This opacity can be of the following formats:
- 0.5
- $named_opacity
'''
def __init__(self, value=None):
self.var = None
self.a = -1
if value is not None:
self.Parse(value)
if not self.var and self.a == -1:
raise ValueError('Malformed opacity value:' + value)
def Parse(self, value):
if isinstance(value, str):
match = re.match(r'^\$([a-z0-9_\-\.]+)$', value)
if match:
self.var = match.group(1)
return
self.a = float(value)
if not (0 <= self.a <= 1):
raise ValueError('Alpha expected to be between 0 and 1')
def GetReadableStr(self):
return 'var(--%s)' % self.var if self.var else '%g%%' % (
float(self.a) * 100)
def __repr__(self):
return 'var(--%s)' % self.var if self.var else '%g' % self.a