Container Widget
Group elements and provide layout structure for HTML and SVG content.
View as MarkdownOpen in ChatGPT Open in Claude
View as MarkdownOpen in ChatGPT Open in Claude
The Container Widget groups elements together and provides layout structure. It supports both HTML and SVG elements, making it the foundation for organizing your template content.
Basic Usage
<div
data-type="container"
class="flex items-center justify-center w-full h-full"
>
<div data-type="text" class="text-2xl">Content inside container</div>
</div>
Attributes
| Attribute | Type | Default | Description |
|---|---|---|---|
data-type |
string | - | Must be "container" |
Supported Tags
HTML Elements
divspanp
SVG Elements
svgg
Examples
Basic HTML Container
<div data-type="container" class="relative w-full h-full bg-blue-500">
<div
class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 text-center"
>
<div
class="text-white text-4xl font-bold"
data-type="text"
data-animate="fade"
data-start="0"
data-duration-animation="2"
>
Welcome
</div>
<div
class="text-blue-100 text-xl mt-4"
data-type="text"
data-animate="fade"
data-start="2"
data-duration-animation="2"
>
To our platform
</div>
</div>
</div>
SVG Container
<svg
data-type="container"
viewBox="0 0 200 200"
width="200"
height="200"
class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"
>
<circle cx="100" cy="100" r="80" fill="blue" />
<text
x="100"
y="110"
text-anchor="middle"
fill="white"
font-size="24"
font-weight="bold"
>
SVG Content
</text>
</svg>
Nested Containers
<div data-type="container" class="relative w-full h-full bg-gray-900">
<!-- Header container -->
<div
class="absolute top-0 left-0 w-full h-1/4 bg-blue-600 flex items-center justify-center"
>
<div
class="text-white text-3xl font-bold"
data-type="text"
data-animate="fade"
data-start="0"
data-duration-animation="2"
>
Header
</div>
</div>
<!-- Main content container -->
<div
class="absolute top-1/4 left-0 w-full h-1/2 bg-gray-800 flex items-center justify-center"
>
<div
class="text-white text-5xl font-bold"
data-type="text"
data-animate="fade"
data-start="2"
data-duration-animation="2"
>
Main Content
</div>
</div>
<!-- Footer container -->
<div
class="absolute bottom-0 left-0 w-full h-1/4 bg-green-600 flex items-center justify-center"
>
<div
class="text-white text-2xl font-semibold"
data-type="text"
data-animate="fade"
data-start="4"
data-duration-animation="2"
>
Footer
</div>
</div>
</div>
Layout Patterns
Centered Layout
<div data-type="container" class="relative w-full h-full bg-purple-500">
<div
class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 text-center"
>
<div
class="text-white text-6xl font-bold mb-4"
data-type="text"
data-animate="fade"
data-start="0"
data-duration-animation="2"
>
Centered Content
</div>
<div
class="text-purple-100 text-2xl"
data-type="text"
data-animate="fade"
data-start="2"
data-duration-animation="2"
>
Perfectly aligned
</div>
</div>
</div>
Grid Layout
<div data-type="container" class="relative w-full h-full bg-gray-100">
<!-- Top row -->
<div class="absolute top-0 left-0 w-full h-1/2 flex">
<div class="w-1/2 h-full bg-red-500 flex items-center justify-center">
<div
class="text-white text-3xl font-bold"
data-type="text"
data-animate="fade"
data-start="0"
data-duration-animation="2"
>
Top Left
</div>
</div>
<div class="w-1/2 h-full bg-blue-500 flex items-center justify-center">
<div
class="text-white text-3xl font-bold"
data-type="text"
data-animate="fade"
data-start="1"
data-duration-animation="2"
>
Top Right
</div>
</div>
</div>
<!-- Bottom row -->
<div class="absolute bottom-0 left-0 w-full h-1/2 flex">
<div class="w-1/2 h-full bg-green-500 flex items-center justify-center">
<div
class="text-white text-3xl font-bold"
data-type="text"
data-animate="fade"
data-start="2"
data-duration-animation="2"
>
Bottom Left
</div>
</div>
<div class="w-1/2 h-full bg-yellow-500 flex items-center justify-center">
<div
class="text-white text-3xl font-bold"
data-type="text"
data-animate="fade"
data-start="3"
data-duration-animation="2"
>
Bottom Right
</div>
</div>
</div>
</div>
Sidebar Layout
<div data-type="container" class="relative w-full h-full bg-white">
<!-- Sidebar -->
<div
class="absolute top-0 left-0 w-1/4 h-full bg-gray-800 flex items-center justify-center"
>
<div
class="text-white text-2xl font-bold"
data-type="text"
data-animate="fade"
data-start="0"
data-duration-animation="2"
>
Sidebar
</div>
</div>
<!-- Main content -->
<div
class="absolute top-0 right-0 w-3/4 h-full bg-gray-100 flex items-center justify-center"
>
<div
class="text-gray-800 text-4xl font-bold"
data-type="text"
data-animate="fade"
data-start="2"
data-duration-animation="2"
>
Main Content Area
</div>
</div>
</div>
SVG Container Examples
Simple SVG
<div data-type="container" class="relative w-full h-full bg-black">
<svg
data-type="container"
viewBox="0 0 400 400"
width="400"
height="400"
class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"
>
<circle cx="200" cy="200" r="150" fill="blue" />
<text
x="200"
y="210"
text-anchor="middle"
fill="white"
font-size="32"
font-weight="bold"
>
SVG Circle
</text>
</svg>
</div>
Complex SVG Layout
<div data-type="container" class="relative w-full h-full bg-gray-900">
<svg
data-type="container"
viewBox="0 0 600 400"
width="600"
height="400"
class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"
>
<!-- Background -->
<rect x="0" y="0" width="600" height="400" fill="darkblue" />
<!-- Header -->
<rect x="0" y="0" width="600" height="100" fill="blue" />
<text
x="300"
y="60"
text-anchor="middle"
fill="white"
font-size="24"
font-weight="bold"
>
SVG Header
</text>
<!-- Main content -->
<rect x="0" y="100" width="600" height="200" fill="lightblue" />
<text
x="300"
y="210"
text-anchor="middle"
fill="darkblue"
font-size="32"
font-weight="bold"
>
Main Content
</text>
<!-- Footer -->
<rect x="0" y="300" width="600" height="100" fill="blue" />
<text x="300" y="360" text-anchor="middle" fill="white" font-size="20">
SVG Footer
</text>
</svg>
</div>
Styling Options
Background Colors
<!-- Solid color -->
<div data-type="container" class="bg-blue-500">Content</div>
<!-- Gradient -->
<div
data-type="container"
class="bg-gradient-to-br from-blue-500 to-purple-600"
>
Content
</div>
<!-- Pattern -->
<div data-type="container" class="bg-gray-100">Content</div>
Layout Classes
<!-- Flexbox -->
<div data-type="container" class="flex items-center justify-center">
Content
</div>
<!-- Grid -->
<div data-type="container" class="grid grid-cols-2 gap-4">Content</div>
<!-- Absolute positioning -->
<div data-type="container" class="relative">Content</div>
Spacing
<!-- Padding -->
<div data-type="container" class="p-8">Content</div>
<!-- Margins -->
<div data-type="container" class="m-4">Content</div>
<!-- Custom spacing -->
<div data-type="container" class="px-6 py-4">Content</div>
Common Use Cases
Dashboard Layout
<div data-type="container" class="relative w-full h-full bg-gray-100">
<!-- Header -->
<div
class="absolute top-0 left-0 w-full h-16 bg-blue-600 flex items-center justify-center"
>
<div
class="text-white text-2xl font-bold"
data-type="text"
data-animate="fade"
data-start="0"
data-duration-animation="2"
>
Dashboard
</div>
</div>
<!-- Sidebar -->
<div
class="absolute top-16 left-0 w-64 h-full bg-gray-800 flex items-center justify-center"
>
<div
class="text-white text-xl"
data-type="text"
data-animate="fade"
data-start="1"
data-duration-animation="2"
>
Navigation
</div>
</div>
<!-- Main content -->
<div
class="absolute top-16 left-64 w-full h-full bg-white flex items-center justify-center"
>
<div
class="text-gray-800 text-3xl font-bold"
data-type="text"
data-animate="fade"
data-start="2"
data-duration-animation="2"
>
Main Content
</div>
</div>
</div>
Card Layout
<div data-type="container" class="relative w-full h-full bg-gray-200">
<div
class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-96 h-64 bg-white rounded-lg shadow-lg p-8"
>
<div
class="text-gray-800 text-3xl font-bold mb-4"
data-type="text"
data-animate="fade"
data-start="0"
data-duration-animation="2"
>
Card Title
</div>
<div
class="text-gray-600 text-lg"
data-type="text"
data-animate="fade"
data-start="2"
data-duration-animation="2"
>
This is a card layout with proper spacing and styling.
</div>
</div>
</div>
Hero Section
<div
data-type="container"
class="relative w-full h-full bg-gradient-to-br from-purple-600 to-blue-600"
>
<!-- Background elements -->
<div class="absolute top-0 left-0 w-full h-full opacity-20">
<div
class="absolute top-1/4 left-1/4 w-32 h-32 bg-white rounded-full"
></div>
<div
class="absolute bottom-1/4 right-1/4 w-24 h-24 bg-white rounded-full"
></div>
</div>
<!-- Main content -->
<div
class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 text-center"
>
<div
class="text-white text-6xl font-bold mb-6"
data-type="text"
data-animate="fade"
data-start="0"
data-duration-animation="3"
>
Hero Title
</div>
<div
class="text-purple-100 text-2xl mb-8"
data-type="text"
data-animate="fade"
data-start="3"
data-duration-animation="2"
>
Subtitle text goes here
</div>
<div
class="text-white text-lg"
data-type="text"
data-animate="fade"
data-start="5"
data-duration-animation="2"
>
Additional information
</div>
</div>
</div>
Best Practices
Structure
- Use containers for grouping: Group related elements together
- Nest appropriately: Don’t over-nest containers
- Clear hierarchy: Maintain a clear visual hierarchy
- Consistent spacing: Use consistent margins and padding
Performance
- Minimize nesting: Avoid unnecessary container nesting
- Efficient layouts: Use appropriate layout methods
- Clean markup: Keep HTML structure clean and semantic
Accessibility
- Semantic structure: Use appropriate HTML elements
- Clear organization: Organize content logically
- Proper contrast: Ensure good color contrast
- Readable text: Use appropriate font sizes and weights
Troubleshooting
Container Not Displaying
Problem: Container doesn’t appear or content is missing
Solutions:
- Check that
data-type="container"is set correctly - Verify the container has proper dimensions (w-full h-full)
- Ensure child elements are properly positioned
- Check for CSS conflicts
Layout Issues
Problem: Elements not positioning correctly
Solutions:
- Use appropriate positioning classes (absolute, relative)
- Check that parent container has proper dimensions
- Verify flexbox or grid classes are correct
- Test different layout approaches
SVG Not Rendering
Problem: SVG elements don’t display
Solutions:
- Ensure SVG has proper viewBox attribute
- Check that SVG dimensions are set
- Verify SVG content is valid
- Use appropriate SVG positioning
Styling Problems
Problem: CSS styles not applying correctly
Solutions:
- Check that Tailwind classes are correct
- Verify CSS specificity
- Test with inline styles
- Ensure proper class ordering
Related Widgets
- Text Widget - For text content inside containers
- Image Widget - For images inside containers
- Counter Widget - For animated numbers inside containers
Last updated on January 5, 2026