Calculator

[Raku CSS Project] / [CSS-Properties] / CSS::Properties :: Calculator

class CSS::Properties::Calculator

property calculator and measurement tool.

Synopsis

use CSS::Properties;
use CSS::Properties::Calculator;
my CSS::Properties $css .= new: :style("font:12pt Helvetica;");
my CSS::Properties::Calculator $calc .= new: :$css, :units<mm>, :veiwport-width<250>;
# Converts a value to a numeric quantity;
my Numeric $font-size = $css.measure: :font-size; # get current font size (mm)
$font-size = $css.measure: :font-size<smaller>;   # compute a smaller font
$font-size = $css.measure: :font-size(120%);      # compute a larger font
my $weight = $css.measure: :font-weight;          # get current font weight 100..900
$weight = $css.measure: :font-weight<bold>;       # compute bold font weight

Description

This module supports conversion of quantities to numerical values.

  • CSS length quantities may rely on context. For example ex depends on the current font and font-size

  • Furthermore the measure method converts lengths to preferred units (by default pt).

  • font-weight is converted to a numerical value in the range 100 .. 900

Note: CSS::Properties, CSS::Box and CSS::Font objects all encapsulate a calculator object which handles measure and calculate methods.

my CSS::Properties $css .= new: :style("font:12pt Helvetica;"), :units<mm>, :veiwport-width<250>;
my Numeric $font-size = $css.measure: :font-size;

method weigh

method weigh(
    $_,
    Int $delta = 0
) returns CSS::Properties::Calculator::FontWeight

converts a weight name to a three digit number: 100 lightest ... 900 heaviest

CSS::Properties v0.8.1

CSS property manipulation library

Authors

  • David Warring

License

Artistic-2.0

Dependencies

CSS::Module:ver<0.5.9+>CSS::Writer:ver<0.2.8+>ColorMethod::Also

Test Dependencies

Provides

  • CSS::Box
  • CSS::Font
  • CSS::Font::Descriptor
  • CSS::Font::Pattern
  • CSS::PageBox
  • CSS::Properties
  • CSS::Properties::Calculator
  • CSS::Properties::Font
  • CSS::Properties::Optimizer
  • CSS::Properties::Property
  • CSS::Units

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.