Splitting sideways into two tags

Posted under Tags

BUR #55774 has been rejected.

create alias sideways -> sideways_(clockwise)
deprecate sideways

I'd like to propose splitting sideways into two tags: sideways_(clockwise) and sideways_(counterclockwise). This would be more precise than combining both under one tag. I think this would be preferable to simply creating those two tags while preserving sideways because it would encourage more accurate tagging, and you could still get both tags at once by searching for sideways_(*clockwise). Sorry if this alias/deprecate thing isn't the correct way to go about this - maybe an alternative could be to make a pool of clockwise posts, then convert it to a tag?

It would also help with the creation of extensions or userscripts to automatically rotate images on the user's end, or generate rotated images with the Download button. I have a feeling sideways is missing from a lot of posts that should have it, these tools could also encourage better tagging.

A tool like this would also be useful for fixing the ~2500 posts that would be incorrectly tagged with this rename. With tag script mode, fixing posts would be relatively easy. Just for a quick proof of concept, here's an example userscript I had Claude generate - it works, although the positions of some thumbnails get shifted around slightly for some reason:

Show
// ==UserScript==
// @name         Danbooru Rotate Sideways Thumbnails Clockwise
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Rotates thumbnails on Danbooru search result pages 90 degrees clockwise if they have the "sideways" tag
// @author       Claude Sonnet 4.6
// @match        https://danbooru.donmai.us/posts?tags=*
// @grant        none
// @icon         https://danbooru.donmai.us/favicon.ico
// ==/UserScript==

(function () {
    'use strict';

    function rotateSidewaysThumbnails() {
        const articles = document.querySelectorAll('article.post-preview[data-tags]');

        for (const article of articles) {
            const tags = article.getAttribute('data-tags');
            if (!tags) continue;

            const tagList = tags.split(' ');
            if (!tagList.includes('sideways')) continue;

            const img = article.querySelector('img.post-preview-image');
            if (!img) continue;

            // Skip if already rotated
            if (img.dataset.rotated) continue;
            img.dataset.rotated = 'true';

            const naturalW = img.getAttribute('width');
            const naturalH = img.getAttribute('height');

            // After 90° CW rotation, width and height swap.
            // We use a wrapper to preserve the layout footprint.
            const wrapper = document.createElement('div');
            wrapper.style.cssText = `
                display: inline-block;
                width: ${naturalH}px;
                height: ${naturalW}px;
                overflow: hidden;
                position: relative;
            `;

            img.parentNode.insertBefore(wrapper, img);
            wrapper.appendChild(img);

            img.style.cssText = `
                transform: rotate(90deg) translateY(-100%);
                transform-origin: top left;
                position: absolute;
                top: 0;
                left: 0;
            `;
        }
    }

    // Run on initial load
    rotateSidewaysThumbnails();

    // Re-run if Danbooru dynamically loads more posts (infinite scroll / AJAX)
    const observer = new MutationObserver(() => {
        rotateSidewaysThumbnails();
    });

    observer.observe(document.body, { childList: true, subtree: true });
})();

I was gonna dismiss this tag as not very useful, but it would actually be really useful to just make the site display the thumbnails as rotated when one of these tags is present, rather than relying on a userscript.

The problem is for posts that are this way for a stylistic choice, such as post #6036034.

1