Claude Haiku 4.5's answer · $0.015

One of 16 models' answers to the same hidden prompt, shown cheapest first by list price, where this model is 6 of 16. Nothing is scored. How it works →

Design a dense data table with sorting affordances and a selected row state. Tests whether a model can make information density feel calm rather than cramped.

Required: self-contained · accessible status · natural sizewording hidden, why? →

raw output — byte exact

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Server Deployment Records</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
            background: #f5f5f5;
            padding: 40px;
            display: flex;
            justify-content: center;
            align-items: flex-start;
            min-height: 100vh;
        }

        .container {
            background: white;
            border-radius: 8px;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
            overflow: hidden;
            max-width: 1200px;
            width: 100%;
        }

        .table-header {
            padding: 16px 20px;
            border-bottom: 1px solid #e0e0e0;
            background: #fafafa;
        }

        .table-title {
            font-size: 14px;
            font-weight: 600;
            color: #222;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        table {
            width: 100%;
            border-collapse: collapse;
            font-size: 13px;
            color: #333;
        }

        thead {
            background: #f9f9f9;
            border-bottom: 2px solid #e0e0e0;
        }

        th {
            padding: 12px 20px;
            text-align: left;
            font-weight: 600;
            color: #555;
            white-space: nowrap;
            user-select: none;
            cursor: pointer;
            transition: background-color 0.15s ease;
            position: relative;
        }

        th:hover {
            background-color: #f0f0f0;
        }

        th.sortable::after {
            content: '↕';
            margin-left: 6px;
            opacity: 0.3;
            font-size: 11px;
        }

        th.sorted-asc::after {
            content: '↑';
            opacity: 0.7;
            color: #0066cc;
        }

        th.sorted-desc::after {
            content: '↓';
            opacity: 0.7;
            color: #0066cc;
        }

        td {
            padding: 12px 20px;
            border-bottom: 1px solid #f0f0f0;
        }

        tbody tr {
            transition: background-color 0.1s ease;
            cursor: pointer;
        }

        tbody tr:hover {
            background-color: #f7f9fc;
        }

        tbody tr.selected {
            background-color: #e3f2fd;
            border-left: 3px solid #0066cc;
            padding-left: 17px;
        }

        tbody tr.selected:hover {
            background-color: #e3f2fd;
        }

        .status-badge {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 4px 10px;
            border-radius: 3px;
            font-weight: 500;
            font-size: 12px;
            width: fit-content;
        }

        .status-active {
            background-color: #e8f5e9;
            color: #2e7d32;
            border: 1px solid #c8e6c9;
        }

        .status-active::before {
            content: '●';
            font-size: 8px;
        }

        .status-pending {
            background-color: #fff3e0;
            color: #e65100;
            border: 1px solid #ffe0b2;
        }

        .status-pending::before {
            content: '◐';
            font-size: 8px;
        }

        .status-failed {
            background-color: #ffebee;
            color: #c62828;
            border: 1px solid #ffcdd2;
        }

        .status-failed::before {
            content: '✕';
            font-size: 8px;
        }

        .service-name {
            font-weight: 500;
            color: #222;
        }

        .region-badge {
            background-color: #f0f0f0;
            color: #555;
            padding: 2px 8px;
            border-radius: 2px;
            font-size: 12px;
            width: fit-content;
        }

        .deployed-by {
            color: #666;
        }

        .duration {
            font-family: 'Courier New', monospace;
            color: #555;
            text-align: right;
        }

        .timestamp {
            color: #999;
            font-size: 12px;
            white-space: nowrap;
            font-family: 'Courier New', monospace;
        }

        tr:last-child td {
            border-bottom: none;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="table-header">
            <div class="table-title">Server Deployments</div>
        </div>
        <table>
            <thead>
                <tr>
                    <th class="sortable">Status</th>
                    <th class="sortable sorted-asc">Service Name</th>
                    <th class="sortable">Region</th>
                    <th class="sortable">Deployed By</th>
                    <th class="sortable">Duration</th>
                    <th class="sortable">Timestamp</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td><span class="status-badge status-active">Active</span></td>
                    <td class="service-name">api-gateway-v2</td>
                    <td><span class="region-badge">us-east-1</span></td>
                    <td class="deployed-by">alice@company.com</td>
                    <td class="duration">2m 34s</td>
                    <td class="timestamp">2024-01-15 14:32:18</td>
                </tr>
                <tr class="selected">
                    <td><span class="status-badge status-active">Active</span></td>
                    <td class="service-name">web-frontend</td>
                    <td><span class="region-badge">eu-west-1</span></td>
                    <td class="deployed-by">bob.martinez@company.com</td>
                    <td class="duration">1m 12s</td>
                    <td class="timestamp">2024-01-15 14:28:55</td>
                </tr>
                <tr>
                    <td><span class="status-badge status-pending">Pending</span></td>
                    <td class="service-name">data-processor</td>
                    <td><span class="region-badge">ap-southeast-1</span></td>
                    <td class="deployed-by">charlie.dev@company.com</td>
                    <td class="duration">45s</td>
                    <td class="timestamp">2024-01-15 14:27:32</td>
                </tr>
                <tr>
                    <td><span class="status-badge status-active">Active</span></td>
                    <td class="service-name">cache-service</td>
                    <td><span class="region-badge">us-west-2</span></td>
                    <td class="deployed-by">diana.ops@company.com</td>
                    <td class="duration">3m 08s</td>
                    <td class="timestamp">2024-01-15 14:15:22</td>
                </tr>
                <tr>
                    <td><span class="status-badge status-failed">Failed</span></td>
                    <td class="service-name">analytics-engine</td>
                    <td><span class="region-badge">eu-central-1</span></td>
                    <td class="deployed-by">eve.jenkins@company.com</td>
                    <td class="duration">5m 42s</td>
                    <td class="timestamp">2024-01-15 14:08:11</td>
                </tr>
                <tr>
                    <td><span class="status-badge status-active">Active</span></td>
                    <td class="service-name">auth-service</td>
                    <td><span class="region-badge">us-east-1</span></td>
                    <td class="deployed-by">frank.brown@company.com</td>
                    <td class="duration">1m 56s</td>
                    <td class="timestamp">2024-01-15 13:52:44</td>
                </tr>
                <tr>
                    <td><span class="status-badge status-active">Active</span></td>
                    <td class="service-name">notification-hub</td>
                    <td><span class="region-badge">ap-northeast-1</span></td>
                    <td class="deployed-by">grace.platform@company.com</td>
                    <td class="duration">2m 19s</td>
                    <td class="timestamp">2024-01-15 13:41:03</td>
                </tr>
                <tr>
                    <td><span class="status-badge status-pending">Pending</span></td>
                    <td class="service-name">search-index-v3</td>
                    <td><span class="region-badge">us-east-1</span></td>
                    <td class="deployed-by">henry.infra@company.com</td>
                    <td class="duration">8m 15s</td>
                    <td class="timestamp">2024-01-15 13:28:17</td>
                </tr>
            </tbody>
        </table>
    </div>

    <script>
        // Add hover effect interactivity
        const rows = document.querySelectorAll('tbody tr');
        
        rows.forEach(row => {
            row.addEventListener('click', () => {
                rows.forEach(r => r.classList.remove('selected'));
                row.classList.add('selected');
            });
        });

        // Add column header sorting state toggle
        const headers = document.querySelectorAll('th.sortable');
        headers.forEach((header, index) => {
            header.addEventListener('click', () => {
                headers.forEach(h => {
                    h.classList.remove('sorted-asc', 'sorted-desc');
                });
                
                if (index === 1) {
                    header.classList.add('sorted-asc');
                }
            });
        });
    </script>
</body>
</html>
```

request envelope — prompt redacted

{
  "model": "anthropic/claude-haiku-4.5",
  "system": "Respond with a single complete, self-contained HTML document rendering the component and nothing else. No markdown fences, no explanation. Inline all CSS and JavaScript, reference no external resource. Render the component at its natural size on a neutral background, with enough surrounding space that it can be photographed.",
  "messages": [
    {
      "role": "user",
      "content": "«REDACTED — 87 words, 559 chars»"
    }
  ],
  "maxOutputTokens": 32000,
  "gatewayStringId": "189809da-2d08-4d08-bf2e-58338b3d0f1a"
}

Search

Prompts, models and categories