NAME

Data::Icon - Data object for icon.

DESCRIPTION

Data object for description of icon. It could be defined as URL with alternate text or as UTF-8 character with colors.

SYNOPSIS

use Data::Icon;

my $obj = Data::Icon->new(%params);
my $alt = $obj->alt;
my $bg_color = $obj->bg_color;
my $char = $obj->char;
my $color = $obj->color;
my $url = $obj->url;

METHODS

new

my $obj = Data::Icon->new(%params);

Constructor.

  • alt

    Alternate text for image icon.

    It's optional.

  • bg_color

    Background color for UTF-8 character.

    It's optional.

  • char

    Icon character. Could be UTF-8 character. Only one character.

    It's optional.

  • color

    Character color.

    It's optional.

  • url

    Icon URL.

    It's optional.

Returns instance of object.

alt

my $alt = $obj->alt;

Get alternate text for image icon.

Returns string.

bg_color

my $bg_color = $obj->bg_color;

Get background color for UTF-8 character.

Returns string.

char

my $char = $obj->char;

Get icon character.

Returns string.

color

my $color = $obj->color;

Get character color.

Returns CSS color string.

url

my $url = $obj->url;

Get icon URL.

Returns string.

ERRORS

new():
        Parameter 'char' don't need parameter 'alt'.
        Parameter 'url' don't need parameter 'bg_color'.
        Parameter 'url' don't need parameter 'color'.
        Parameter 'url' is in conflict with parameter 'char'.
        From Mo::utils:
                Parameter 'alt' has length greater than '100'.
                        Value: %s
                Parameter 'char' has length greater than '1'.
                        Value: %s
        From Mo::utils::CSS::check_css_color():
                Parameter '%s' has bad color name.
                        Value: %s
                Parameter '%s' has bad rgb color (bad hex number).
                        Value: %s
                Parameter '%s' has bad rgb color (bad length).
                        Value: %s
        From Mo::utils::URI::check_location():
                Parameter 'url' doesn't contain valid location.
                        Value: %s

EXAMPLE1

use strict;
use warnings;

use Data::Icon;

my $obj = Data::Icon->new(
        'alt' => 'Foo icon',
        'url' => 'https://example.com/foo.png',
);

# Print out.
print "Alternate text: ".$obj->alt."\n";
print "Icon URL: ".$obj->url."\n";

# Output:
# Alternate text: Foo icon
# Icon URL: https://example.com/foo.png

EXAMPLE2

use strict;
use warnings;

use Data::Icon;
use Unicode::UTF8 qw(decode_utf8 encode_utf8);

my $obj = Data::Icon->new(
        'bg_color' => 'grey',
        'char' => decode_utf8('†'),
        'color' => 'red',
);

# Print out.
print "Character: ".encode_utf8($obj->char)."\n";
print "CSS color: ".$obj->color."\n";
print "CSS background color: ".$obj->bg_color."\n";

# Output:
# Character: †
# CSS color: red
# CSS background color: grey

DEPENDENCIES

Error::Pure, Mo, Mo::utils, Mo::utils::CSS, Mo::utils::URI.

REPOSITORY

https://github.com/michal-josef-spacek/Data-Icon

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© 2025 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.02