--- /dev/null
+package Reaction::UI::ViewPort::Image;
+
+use Reaction::Class;
+use namespace::clean -except => [ qw(meta) ];
+extends 'Reaction::UI::ViewPort';
+
+has uri => ( is => 'rw', isa => 'URI', required => 1);
+has width => ( is => 'rw', isa => 'Int');
+has height => ( is => 'rw', isa => 'Int');
+
+__PACKAGE__->meta->make_immutable;
+
+1;
+
+__END__;
--- /dev/null
+package Reaction::UI::Widget::Image;
+
+use Reaction::UI::WidgetClass;
+use namespace::clean -except => [ qw(meta) ];
+
+before fragment widget {
+ my $vp = $_{viewport};
+ my $attrs = {
+ uri => $vp->uri,
+ ($vp->has_width ? (width => $vp->width) : ()),
+ ($vp->has_height ? (height => $vp->height) : ()),
+ };
+ arg img_attrs => attrs( $attrs );
+};
+
+__PACKAGE__->meta->make_immutable;
+
+1;
+
+__END__;