browser mockup

Browser mockup shows a box that looks like a browser window.

Base Browser Mockup

Exported source
mockup_browser = SingleValueFactory("mockup-browser", "Base browser mockup component") # Base mockup browser component
mockup_browser_toolbar = SingleValueFactory("mockup-browser-toolbar", "Toolbar part which can include addressbar, etc") # Base mockup browser toolbar part

Browser Mockup Test Examples


source

test_mockup_browser_basic_examples

 test_mockup_browser_basic_examples ()

Test basic mockup_browser utilities.

Exported source
def test_mockup_browser_basic_examples():
    """Test basic mockup_browser utilities."""
    # Basic mockup_browser
    assert str(mockup_browser) == "mockup-browser"
    assert str(mockup_browser_toolbar) == "mockup-browser-toolbar"
    
    # Test with modifiers
    assert str(mockup_browser.hover) == "hover:mockup-browser"
    assert str(mockup_browser.md) == "md:mockup-browser"
    assert str(mockup_browser.dark) == "dark:mockup-browser"

# Run the tests
test_mockup_browser_basic_examples()

source

test_browser_mockup_with_border_fasthtml_examples

 test_browser_mockup_with_border_fasthtml_examples ()

Test browser mockup with border from daisyUI v5 documentation.

Exported source
def test_browser_mockup_with_border_fasthtml_examples():
    """Test browser mockup with border from daisyUI v5 documentation."""
    from fasthtml.common import Div
    from cjm_fasthtml_tailwind.utilities.sizing import w, h
    from cjm_fasthtml_tailwind.utilities.borders import border
    from cjm_fasthtml_tailwind.utilities.layout import display_tw
    from cjm_fasthtml_tailwind.utilities.flexbox_and_grid import place_content, grid_display
    from cjm_fasthtml_daisyui.components.data_input.text_input import text_input
    from cjm_fasthtml_daisyui.utilities.semantic_colors import border_dui
    
    # Browser mockup with border
    browser_with_border = Div(
        Div(
            Div("https://daisyui.com", cls=str(text_input)),
            cls=str(mockup_browser_toolbar)
        ),
        Div(
            "Hello!",
            cls=combine_classes(grid_display, place_content.center, border.t(), border_dui.base_300, h._80)
        ),
        cls=combine_classes(mockup_browser, border_dui.base_300, border(), w.full)
    )
    
    # Verify structure
    assert browser_with_border.tag == "div"
    assert "mockup-browser" in browser_with_border.attrs['class']
    assert "border-base-300" in browser_with_border.attrs['class']
    assert "border" in browser_with_border.attrs['class']
    assert "w-full" in browser_with_border.attrs['class']
    
    # Verify toolbar
    toolbar = browser_with_border.children[0]
    assert toolbar.tag == "div"
    assert toolbar.attrs['class'] == "mockup-browser-toolbar"
    
    # Verify address bar (input div)
    address_bar = toolbar.children[0]
    assert address_bar.tag == "div"
    assert address_bar.attrs['class'] == "input"
    assert address_bar.children[0] == "https://daisyui.com"
    
    # Verify content area
    content = browser_with_border.children[1]
    assert content.tag == "div"
    assert "grid" in content.attrs['class']
    assert "place-content-center" in content.attrs['class']
    assert "border-t" in content.attrs['class']
    assert "border-base-300" in content.attrs['class']
    assert "h-80" in content.attrs['class']
    assert content.children[0] == "Hello!"
    
    return browser_with_border

# Run the tests
test_browser_mockup_with_border_fasthtml_examples()
<div class="mockup-browser border-base-300 border w-full">
  <div class="mockup-browser-toolbar">
    <div class="input">https://daisyui.com</div>
  </div>
  <div class="grid place-content-center border-t border-base-300 h-80">Hello!</div>
</div>
test_func = test_browser_mockup_with_border_fasthtml_examples
app, rt = create_test_app(theme=DaisyUITheme.LIGHT)

@rt
def index():
    return create_test_page(test_func.__doc__.title().replace('.', ''), test_func())
server = start_test_server(app)
display(HTMX())
server.stop()

source

test_browser_mockup_with_background_fasthtml_examples

 test_browser_mockup_with_background_fasthtml_examples ()

Test browser mockup with background color from daisyUI v5 documentation.

Exported source
def test_browser_mockup_with_background_fasthtml_examples():
    """Test browser mockup with background color from daisyUI v5 documentation."""
    from fasthtml.common import Div
    from cjm_fasthtml_tailwind.utilities.sizing import w, h
    from cjm_fasthtml_tailwind.utilities.borders import border
    from cjm_fasthtml_tailwind.utilities.layout import display_tw
    from cjm_fasthtml_tailwind.utilities.flexbox_and_grid import place_content, grid_display
    from cjm_fasthtml_daisyui.components.data_input.text_input import text_input
    from cjm_fasthtml_daisyui.utilities.semantic_colors import border_dui
    
    # Browser mockup with background color (no border-t on content)
    browser_with_background = Div(
        Div(
            Div("https://daisyui.com", cls=str(text_input)),
            cls=str(mockup_browser_toolbar)
        ),
        Div(
            "Hello!",
            cls=combine_classes(grid_display, place_content.center, h._80)
        ),
        cls=combine_classes(mockup_browser, border(), border_dui.base_300, w.full)
    )
    
    # Verify structure
    assert browser_with_background.tag == "div"
    assert "mockup-browser" in browser_with_background.attrs['class']
    assert "border" in browser_with_background.attrs['class']
    assert "border-base-300" in browser_with_background.attrs['class']
    assert "w-full" in browser_with_background.attrs['class']
    
    # Verify toolbar
    toolbar = browser_with_background.children[0]
    assert toolbar.tag == "div"
    assert toolbar.attrs['class'] == "mockup-browser-toolbar"
    
    # Verify address bar (input div)
    address_bar = toolbar.children[0]
    assert address_bar.tag == "div"
    assert address_bar.attrs['class'] == "input"
    assert address_bar.children[0] == "https://daisyui.com"
    
    # Verify content area (no border-t)
    content = browser_with_background.children[1]
    assert content.tag == "div"
    assert "grid" in content.attrs['class']
    assert "place-content-center" in content.attrs['class']
    assert "h-80" in content.attrs['class']
    assert "border-t" not in content.attrs['class']  # Key difference - no border-t
    assert content.children[0] == "Hello!"
    
    return browser_with_background

# Run the tests
test_browser_mockup_with_background_fasthtml_examples()
<div class="mockup-browser border border-base-300 w-full">
  <div class="mockup-browser-toolbar">
    <div class="input">https://daisyui.com</div>
  </div>
  <div class="grid place-content-center h-80">Hello!</div>
</div>
test_func = test_browser_mockup_with_background_fasthtml_examples
app, rt = create_test_app(theme=DaisyUITheme.LIGHT)

@rt
def index():
    return create_test_page(test_func.__doc__.title().replace('.', ''), test_func())
server = start_test_server(app)
display(HTMX())
server.stop()