Skip to main content

PyFrontKit

A Python DSL for Building Web Views as Executable Code

License: MIT

PyFrontKit is a Python library that lets you build web views using pure Python, producing clean, professional HTML and CSS without replacing or hiding web standards.

It is not a framework — it’s a backend-friendly engine for structure, control, and clarity.

🌟 Why PyFrontKit Exists

Developers often spend hours writing repetitive HTML and CSS. PyFrontKit allows you to:

  • Reduce boilerplate while keeping full control
  • Generate real, editable HTML and CSS
  • Use Python logic (if/else, for) to shape your page dynamically
  • Build production-ready pages to disk or directly in memory, with optional inline CSS

Structure first. Automation second. Control always.


💡 What PyFrontKit Is (and Isn’t)

✔ It is:

  • A Pythonic DSL for HTML and CSS
  • A productivity tool that simplifies repetitive tasks
  • A system that produces professional, editable code
  • Suitable for static sites, landing pages, and Python-driven frontends

✖ It is not:

  • A visual builder
  • A framework that hides HTML/CSS
  • A layout generator
  • A runtime-dependent system

PyFrontKit helps you write less without thinking less.


🧱 Core Concepts

Blocks and Content

  • Blocks = HTML elements (div, section, header, etc.)
  • ctn_ parameters = textual content inside a block
  • IDs are optional; required only for blocks receiving children later
Footer(ctn_p="© 2025 PyFrontKit")  # simple block
Footer(id="page_footer")           # can receive children later

Text Handling (ContentItems)

  • Automatically converts line breaks (\n) into <br />
  • Supports multiple tags (p, span, h1–h6, strong, em, code, mark)
  • Full triple-quoted strings supported

🎨 Styling

1️⃣ Inline Styles (Fast Prototyping)

Div(ctn_p="Hello", style="color:red; padding:10px;")

2️⃣ External CSS (Recommended)

PyFrontKit generates selectors in style.css that are editable:

#page_footer {}
section {}
div {}

🎨 Color System (Optional)

  • CreateColor → predefined palettes and templates
  • CreateWithColor → define custom colors while using templates

Available templates: simple, classic, soft, darkness, mono, mono_accent, total, total_v2, classic_reverse, dark_reverse, asimetric, enfasis_main


✒️ Typography System (Optional)

  • Load custom or Google fonts
  • Separate body, header, and footer typography
  • Apply styles via CSS, never hardcoded

💻 Disk vs Memory

Disk Mode

Generates files:

index.html
style.css

Memory Mode

Returns a fully-rendered string, ready for frameworks like FastAPI or Flask, optionally with inline CSS for single-response delivery.

doc.create_template()  # returns HTML+CSS string

📄 Basic Example

from pyfrontkit import HtmlDoc, Header, Section, Div, Footer

doc = HtmlDoc(title="PyFrontKit Example")

Header(ctn_h1="Welcome to PyFrontKit")

Section(id="content")
content(
    Div(ctn_p="This page was generated entirely with Python.")
)

Footer(ctn_p="© 2025 PyFrontKit")

doc.create_document()  # writes index.html + style.css

🖼️ Examples

PyFrontKit ships with two professional examples:

File Description
example_1.py Landing page with hero sections and grids
example_2.py Multi-section page demonstrating color & typography systems

Check the examples/ folder to see PyFrontKit in action.


🚀 Use Cases

  • Static websites
  • Documentation generators
  • Landing pages
  • UI prototyping
  • Teaching HTML & CSS structure
  • Python-driven frontend workflows

📦 Installation

pip install pyfrontkit

or

pip install git+https://github.com/Edybrown/pyfrontkit.git

🧪 Production Ready

  • Deterministic output
  • Tested with pytest
  • No runtime dependencies
  • Ideal for automation & CI pipelines

👤 Author

Eduardo Antonio Ferrera Rodríguez Focus: Python DSL, frontend structure, automation without abstraction loss, professional output

Licensed under MIT License

Metadata

Release files for pyfrontkit 1.1.35

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyfrontkit 1.1.35
File Size Uploaded
pyfrontkit-1.1.35.tar.gz 31.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyfrontkit 1.1.35
File Interpreter ABI Platform
pyfrontkit-1.1.35-py3-none-any.whl Python 3 none any Details

Total release size: 69.5 kB

Release files / pyfrontkit-1.1.35.tar.gz

Download URL pyfrontkit-1.1.35.tar.gz
Size 31.7 kB
Tags Source
SHA-256 checksum
How to use checksums
91ea4db0a854b32df220c87ba2628803605138f6e9f664b11a9713d3bd5e484e
BLAKE2b-256 checksum
How to use checksums
74715966750134d3b332be097ab7b67c7b2eabc89c15336f38ed0aae1daaa9dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.0rc1

Release files / pyfrontkit-1.1.35-py3-none-any.whl

Download URL pyfrontkit-1.1.35-py3-none-any.whl
Size 37.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
34e3647f2734c608c847e78e763f8367fc558013cf0face69e56d71f92a4362b
BLAKE2b-256 checksum
How to use checksums
a618d0be34ddae99a0785574bd7d522248829c894f0c4df7fe760e601490a530
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.0rc1

Release history Release notifications | RSS feed

This release

1.1.35 This release

2 release files

1.1.34

2 release files

1.1.33

2 release files

1.1.32

2 release files

1.1.31

2 release files

1.1.28

2 release files

1.1.27

2 release files

1.1.19

2 release files

1.1.18

2 release files

1.1.17

2 release files

1.1.16

2 release files

1.1.15

2 release files

1.1.14

2 release files

1.1.13

2 release files

1.1.12

2 release files

1.1.11

2 release files

1.1.10

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.99

2 release files

1.0.98

2 release files

1.0.97

2 release files

1.0.96

2 release files

1.0.95

2 release files

1.0.94

2 release files

1.0.93

2 release files

1.0.92

2 release files

1.0.91

2 release files

1.0.90

2 release files

1.0.89

2 release files

1.0.88

2 release files

1.0.87

2 release files

1.0.86

2 release files

1.0.85

2 release files

1.0.84

2 release files

1.0.83

2 release files

1.0.82

2 release files

1.0.81

2 release files

1.0.80

2 release files

1.0.79

2 release files

1.0.78

2 release files

1.0.77

2 release files

1.0.76

2 release files

1.0.75

2 release files

1.0.74

2 release files

1.0.73

2 release files

1.0.72

2 release files

1.0.71

2 release files

1.0.70

2 release files

1.0.69

2 release files

1.0.68

2 release files

1.0.36

2 release files

1.0.35

2 release files

1.0.34

2 release files

1.0.33

2 release files

1.0.32

2 release files

1.0.31

2 release files

1.0.30

2 release files

1.0.29

2 release files

1.0.28

2 release files

1.0.27

2 release files

1.0.26

2 release files

1.0.25

2 release files

1.0.24

2 release files

1.0.23

2 release files

1.0.22

2 release files

1.0.21

2 release files

1.0.20

2 release files

1.0.19

2 release files

1.0.18

2 release files

1.0.17

2 release files

1.0.16

2 release files

1.0.15

2 release files

1.0.14

2 release files

1.0.13

2 release files

1.0.12

2 release files

1.0.11

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.9.9

2 release files

0.9.8

2 release files

0.9.7

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page