| 3 | 1 local Luan = require "luan:Luan.luan" | 
|  | 2 local error = Luan.error | 
|  | 3 local Io = require "luan:Io.luan" | 
|  | 4 local Http = require "luan:http/Http.luan" | 
|  | 5 local Shared = require "site:/lib/Shared.luan" | 
|  | 6 local head = Shared.head or error() | 
|  | 7 local needed_header = Shared.needed_header or error() | 
|  | 8 | 
|  | 9 | 
|  | 10 return function() | 
|  | 11 	Io.stdout = Http.response.text_writer() | 
|  | 12 %> | 
|  | 13 <!doctype html> | 
|  | 14 <html> | 
|  | 15 	<head> | 
|  | 16 <%		head() %> | 
| 81 | 17 		<title>Reactionary Software - Swing Look and Feel</title> | 
| 34 | 18 		<style> | 
|  | 19 			li { | 
|  | 20 				margin-top: 8px; | 
|  | 21 			} | 
|  | 22 		</style> | 
| 15 | 23 	</head> | 
| 3 | 24 	<body> | 
|  | 25 <%		needed_header() %> | 
|  | 26 		<div content> | 
| 81 | 27 			<h1>Swing Look and Feel</h1> | 
| 3 | 28 | 
| 81 | 29 			<p>All existing <a href="https://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/">Swing Look and Feels</a> are horrible.  A good look and feel would:</p> | 
| 3 | 30 | 
| 34 | 31 			<ul> | 
| 81 | 32 				<li>Have no white space around components.  The layout manager should handle this.</li> | 
|  | 33 				<li>Support <code>apple.laf.useScreenMenuBar</code>.</li> | 
|  | 34 				<li>When a text component loses focus, the selection should not disappear and the cursor should just stop blinking.</li> | 
|  | 35 				<li>Have a good reactionary (non-flat) aesthetic.</li> | 
| 34 | 36 			</ul> | 
| 3 | 37 | 
| 81 | 38 			<p>You can read about my struggles with look and feels in this <a href="https://chatgpt.com/share/67fd89eb-872c-8013-ae98-653c99b9bc3c">ChatGPT thread</a>.  A reactionary look and feel is badly needed.</p> | 
| 3 | 39 		</div> | 
|  | 40 	</body> | 
|  | 41 </html> | 
|  | 42 <% | 
|  | 43 end |