flutter_dom_ui 0.1.3 copy "flutter_dom_ui: ^0.1.3" to clipboard
flutter_dom_ui: ^0.1.3 copied to clipboard

flutter_dom_ui is a new universal Flutter package for SEO-friendly and accessible in Flutter web app.

flutter_dom_ui #

pub package License: BSD-3-Clause

flutter_dom_ui is a Flutter UI utility package designed to improve SEO-friendliness and accessibility in Flutter web applications. It includes custom semantic widgets like:

SeoScaffold, SeoAppBar, SeoBottomNavigationBar, SeoPadding, SeoCenter, SeoContainer, SeoWrap, SeoCard, SeoChoiceChip , SeoFooter, SeoListView,SeoSingleChildScrollView, SeoColumn, SeoRow, SeoText, SeoTextField, SeoButton, SeoImage, SeoLink โ€” all optimized for DOM manipulation and web enhancements.


โœจ Features #

  • ๐Ÿ“ฆ SEO-friendly widgets (SeoText, SeoImage, SeoButton, SeoLink etc.)
  • โšก Custom wrappers for layout widgets: ListView,SingleChildScrollView, Column, Row, SizedBox, ConstrainedBox Container, Center, Footer, Wrap, Card, ChoiceChip
  • ๐Ÿ”— Semantic links using <a> tag behavior via SeoLink
  • ๐Ÿ”  DOM-based text rendering with SeoText for better crawlability
  • ๐Ÿงฑ Scaffold, BottomNavigationBar and AppBar variants: SeoScaffold, SeoAppBar, SeoBottomNavigationBar
  • ๐Ÿงช Compatible with Flutter Web and supports unit/widget testing

๐Ÿš€ Getting Started #

1๏ธโƒฃ Installation #

Add the package to your pubspec.yaml:

dependencies:
  flutter_dom_ui: ^0.1.3

Then run:

flutter pub get

2๏ธโƒฃ Import the package #

import this package on your dart file:

import 'package:flutter_dom_ui/flutter_dom_ui.dart';

๐Ÿ’ก Example Usage #

SeoScaffold(
        backgroundColor: Colors.grey.shade100,
        metaTitle: 'Flutter Dom Ui',
        appBar: SeoAppBar(
          backgroundColor: Colors.blue,
          title: SeoText(
            'Flutter Dom Ui',
            style: TextStyle(fontWeight: FontWeight.bold, color: Colors.white),
          ),
        ),
        bottomNavigationBar: SeoBottomNavigationBar(
            items: [
              BottomNavigationBarItem(icon: Icon(Icons.home), label: 'Home'),
              BottomNavigationBarItem(
                icon: Icon(Icons.settings),
                label: 'Settings',
              ),
              BottomNavigationBarItem(
                icon: Icon(Icons.person),
                label: 'Profile',
              ),
            ],
          ),
        body: SeoCenter(
          child: SeoContainer(
            width: 600,
            child: SeoListView(
              children: [
                SeoContainer(
                  margin: EdgeInsets.all(10),
                  width: 600,
                  height: 60,
                  decoration: BoxDecoration(
                    borderRadius: BorderRadius.circular(8),
                    color: Colors.white,
                  ),
                  child: SeoCenter(
                    child: SeoTextField(
                      controller: searchController,
                      placeholder: 'search...',
                      type:
                          InputType
                              .text, // if you add keyboardType then don't need it
                      keyboardType: TextInputType.text,
                      decoration: InputDecoration(
                        border: OutlineInputBorder(
                          borderRadius: BorderRadius.circular(8),
                        ),
                      ),
                    ),
                  ),
                ),
                SeoContainer(
                  margin: EdgeInsets.all(10),
                  width: 600,
                  height: 80,
                  decoration: BoxDecoration(
                    borderRadius: BorderRadius.circular(8),
                    color: Colors.white,
                  ),
                  child: SeoRow(
                    mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                    crossAxisAlignment: CrossAxisAlignment.center,
                    children: [
                      SeoImage(
                        src:
                            'https://static.vecteezy.com/system/resources/thumbnails/002/002/403/small/man-with-beard-avatar-character-isolated-icon-free-vector.jpg',
                        alt: 'Profile Picture',
                        width: 50,
                        height: 50,
                        fit: BoxFit.cover,
                      ),
                      SeoColumn(
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: [
                          SeoText(
                            'Md. Nahid Hasan',
                            style: TextStyle(
                              fontWeight: FontWeight.bold,
                              fontSize: 16,
                              color: Colors.black,
                            ),
                          ),
                          SeoText(
                            'Founder of crealick.com',
                            style: TextStyle(fontSize: 14, color: Colors.grey),
                          ),
                        ],
                      ),
                      SeoColumn(
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: [
                          SeoButton(
                            label: 'Add Friend',
                            labelStyle: TextStyle(
                              color: Colors.white,
                              fontWeight: FontWeight.bold,
                            ),
                            style: ButtonStyle(
                              backgroundColor: WidgetStatePropertyAll(
                                Colors.blue,
                              ),
                            ),
                          ),
                          SeoLink(
                            href: 'https://google.com',
                            text: 'search gogle',
                            onTap: () {},
                          ),
                        ],
                      ),
                    ],
                  ),
                ),
                SeoContainer(
                  margin: EdgeInsets.all(10),
                  width: 600,
                  height: 80,
                  decoration: BoxDecoration(
                    borderRadius: BorderRadius.circular(8),
                    color: Colors.white,
                  ),
                  child: SeoRow(
                    mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                    crossAxisAlignment: CrossAxisAlignment.center,
                    children: [
                      SeoImage(
                        src:
                            'https://static.vecteezy.com/system/resources/thumbnails/002/002/403/small/man-with-beard-avatar-character-isolated-icon-free-vector.jpg',
                        alt: 'Profile Picture',
                        width: 50,
                        height: 50,
                        fit: BoxFit.cover,
                      ),
                      SeoColumn(
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: [
                          SeoText(
                            'Md. Nahid Hasan',
                            style: TextStyle(
                              fontWeight: FontWeight.bold,
                              fontSize: 16,
                              color: Colors.black,
                            ),
                          ),
                          SeoText(
                            'Founder of crealick.com',
                            style: TextStyle(fontSize: 14, color: Colors.grey),
                          ),
                        ],
                      ),
                      SeoColumn(
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: [
                          SeoButton(
                            label: 'Add Friend',
                            labelStyle: TextStyle(
                              color: Colors.white,
                              fontWeight: FontWeight.bold,
                            ),
                            style: ButtonStyle(
                              backgroundColor: WidgetStatePropertyAll(
                                Colors.blue,
                              ),
                            ),
                          ),
                          SeoLink(
                            href: 'https://google.com',
                            text: 'search gogle',
                            onTap: () {},
                          ),
                        ],
                      ),
                    ],
                  ),
                ),
              ],
            ),
          ),
        ),
      ),

๐ŸŒ Live Demo #

Try the live example here:

๐Ÿ‘‰ https://flutterdomui.netlify.app/

๐Ÿ“ธ Screenshot #

Demo of flutter_dom_ui

๐Ÿ“œ License #

This package is distributed under the BSD 3-Clause License.

๐Ÿค Contributing #

Contributions, issues and feature requests are welcome! Please open an issue or pull request on the GitHub repository.

2
likes
150
points
44
downloads

Publisher

verified publishercrealick.com

Weekly Downloads

flutter_dom_ui is a new universal Flutter package for SEO-friendly and accessible in Flutter web app.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter, web

More

Packages that depend on flutter_dom_ui