How did I create Vertical Table Headers in Confluence
?? Miroslav Sommer
Engineering Manager | Technical Direction, Leadership, Systems Design, Agile, DevSecOps, Automation | Author of OOO Wiz, Vertical Text Macro, Smart User Profile add-ons
TL;DR
As a passionate Confluence user with a keen eye for problem-solving, I was intrigued by the longstanding request for vertical text functionality within table headers.
I was able to develop a Vertical Text Macro, which empowers users to effortlessly transform horizontal headers into crisp vertical text.
This project not only addresses a long-standing need within the Confluence Community, but it also demonstrates my ability to think creatively and my dedication to finding elegant solutions for real-world user pain points.
Why?
As Confluence users, we've all encountered the frustration of cumbersome table formatting. Horizontal headers, particularly for narrow data columns, can create wasted space and hinder readability, especially on smaller screens.
This pain point, highlighted by numerous user requests since 2016 (including e.g.?here for Confluence Server), has remained unaddressed for quite some time in Confluence Cloud.
However, fuelled by a desire to empower fellow users and my ongoing exploration of the Atlassian Forge ecosystem, I decided to tackle this challenge.
Inspiration & Opportunity
Personally, I've encountered this limitation countless times. Imagine a table with a?"Description" column needing ample space, while a "Status" column simply uses emojis like ? or ?. Horizontal headers force unnecessary width allocation, hampering visual clarity.
This frustration, coupled with my technical expertise and a recent deep dive into Atlassian Forge's capabilities, sparked a potential solution. While Confluence lacks native vertical text support, I recognized the power of custom macros. A?lightbulb moment struck – what if I could combine a custom macro with a?configuration to achieve the desired outcome?
Overcoming Technical Hurdles: A Creative Workaround
The journey wasn't without its challenges.
Implementing true vertical text that would support any formatting within Confluence's core functionality proved complex. However, I?focused on the user need to keep it simple: Transforming horizontal headers into space-saving, visually appealing simple formats.
I created a Custom UI macro that accepts the header text as a configuration and transforms it into the desired vertical format.
This approach offers several advantages:
How?
Confluence Forge offers three options for creating custom macros: UI Kit, UI Kit 2, and Custom UI. For achieving custom text styling, which was crucial for vertical display, the Custom UI was the only viable choice, because the other two options don't support custom styling.
The initial Proof of Concept presented some unforeseen obstacles:
The Solution (technical)
I explored various avenues to overcome these hurdles. Here's where the technical details get interesting:
CSS for Vertical Transformation:
Responsive Height:
Addressing Multi-Line Text:
With the vertical text rendering and height adjustments working as intended, two final hurdles remained. The table header width wasn't adjusting automatically for multi-line vertical text. To address this, I employed a whitespace CSS property and set it to no-wrap. This ensures the entire header displays on a single line, preventing unwanted width expansion.
The Solution for Rich Text (even more technical)
While using the Config to set the desired header text was a feasible solution, it had a limitation: The header text could only be in plaintext, it could not be a rich text with formatting or any other content.
After building and verifying this Proof of Concept, I’ve found an innovative solution to support rich text and preserve the formatting when displaying it as the vertical text.
Here's a glimpse into the technical aspects (feel free to skip ahead if technical details are less interesting):
What's next?
The future holds exciting possibilities for further development.
Roadmap:
User-Driven Development: Your Feedback Matters Most
The Vertical Text Macro empowers users to streamline their Confluence tables, enhancing readability and optimizing space utilization. This project not only addresses a long-standing user pain point but also showcases the potential of creative problem-solving within the Atlassian ecosystem.
Looking ahead, I envision further improvements:
By combining user experience, technical expertise, and a detailed understanding of the Atlassian Forge, I was able to deliver a solution that improves the Confluence experience for many. This project exemplifies my ability to identify user needs, translate them into innovative solutions, and leverage technology effectively.
While the Vertical Text Macro offers benefits for all Confluence users, the macro is currently available as an Early Access release (Sign up here), with Confluence Administrators and users with the ability to install third-party add-ons being the primary user base.
A Leader Who Codes: Beyond the Code
As a Software Engineering Manager (EM) and a passionate technologist, I believe continuous learning is paramount for effective leadership. This project exemplifies my commitment to both technical expertise and people management skills.
Expanding my technical skillset, I explored the capabilities of Atlassian Forge SDK, and Atlassian APIs and navigated the intricacies of the Atlassian ecosystem.
While the coding provided a technical challenge, this project wasn't solely about the code itself. Understanding the user experience (UX) frustrations motivated me to find a solution that would allow me to reach out and interact with the broader Confluence community.
I believe collaboration fuels innovation. My vision for the Vertical Text Macro extends beyond a personal project. My goal is to continuously improve this tool by:
Seeking User Feedback and understanding user needs and gathering feedback are crucial for future development. Involving the community empowers me to prioritize features that truly enhance the user experience.
By fostering an open dialogue and sharing my knowledge, I hope to inspire others within the Confluence community to contribute their ideas and expertise and to help building a thriving ecosystem.
This journey with the Vertical Text Macro is a testament to my commitment to:
Hope this helps.
Technology Used